Escolar Documentos
Profissional Documentos
Cultura Documentos
#include <stdio.h>
int sqr (int x){ //o parâmetro foi declarado dentro dos
parênteses
printf (“%d elevado ao quadrado é %d\n”, x, x * x);
}
void main(){
int num;
num = 100; nn
sqr(num); //chama sqr com o parâmetro num
}
void fund1(void){
int x;
x = 10; (variavel local)
}
void func2(void){
int x; (variavel local)
x = -199;
}
A variável inteira foi declarada duas vezes, uma vez em func1( ) e uma
vez em func2( ). O x em func1( ) não tem relação em, ou relacionamento com, o x
na func2( ). O motivo é que cada x conhecido somente no código que está dentro
do mesmo bloco da declaração da variável.
fora de qualquer função. A sua declaração foi definida antes da função main( ).
Porém, ela poderia ter sido colocada em qualquer lugar, contando que não fosse em uma
função anterior à sua primeira utilização. As práticas comuns ditam que é melhor declarar
variáveis globais no topo do programa.
#include <stdio.h>
int count; //count é uma variável global
void func1(void), func2(void); //protótipos de funções
void main(){
count = 100;
func1();
}
void func1(void){
func2();
printf (“O valor de count é %d”, count); //imprimirá 100
}
void func2(void){
int count;
for (count = 1; count < 10; count++) printf (“.”);
}
Olhando este programa mais de perto, deve ficar claro que, embora a
variável count não tenha sido declarada nem em main( ) nem em func1( ), as duas
funções podem usa-la. Entretanto, func2( ) tem declarado uma variável local chamada
count. Quando referencia a variável count, func2( ) está referenciando somente a sua
variável local, não a global. É muito importante lembrar que, se uma variável global e uma
local tiverem o mesmo nome, todas as referências àquele nome de variável dentro da
função onde a variável local é declarada se referirão somente a ela e não terão efeito na
variável global. Isso pode ser uma conveniência, mas esquecer-se dessa característica
pode levar o seu programa a agir de maneira estranha, mesmo que pareça correto.
Variáveis globais são muito úteis quando o mesmo dados é usado em
muitas funções no seu programa. Entretanto, deve-se evitar a utilização de variáveis
globais desnecessárias por três razões:
· Elas ocupam a memória durante todo o tempo em que o programa está
executando, não somente quando necessário;
· Usar uma variável global onde haverá uma variável local torna menos geral uma função,
porque ela vai depender de algo que deve ser definido fora dela;
· A utilização de um grande número de variáveis globais pode levar o projeto a
erros por causa dos efeitos colaterais desconhecidos e não desejáveis.
#include <stdio.h>
int sqr(int x){
x = x * x;
return(x);
}
void main(){
int t = 10;
printf (“%d %d”, sqr(t), t);
}
#include <stdio.h>
void troca (int *x, int *y){
int temp;
temp = *x;
*x = *y;
*y = temp;
}
void main(){
int x,y;
printf("Digite dois números:\n");
scanf("%d%d", &x, &y);
printf("Valores iniciais: x = %d y = %d\n", x, y);
troca(&x, &y);
printf("Valores trocados: x = %d y = %d\n", x, y);
}
1012 m[2][0]
1014 m[2][1]
1016 m[2][2]
4.5 VETORES DE CADEIAS DE CARACTERES
A declaração abaixo mostra uma matriz de cadeias de caracteres com 30
linhas de 80 caracteres.
char nome_turma[30][80];
O exemplo abaixo mostra um programa que lê uma matriz de nomes
imprime os seus conteúdos.
#define DIML 5
#define DIMC 40
#include <stdio.h>
void main(){
int i, j;
int nomes[DIML][DIMC];
for (i = 0; i < DIML; i++){
printf (“Entre com a linha %d”, i);
scanf (“%s”, nomes[i]);
}
for (i = 0; i < DIML; i++){
printf(“O nome %d e\n”, i);
printf (nomes[i]);
}
}
4.6 INICIALIZAÇÃO DE VETORES
Em C é possível inicializar vetores no momento em que são declarados
da mesma forma que variáveis. A forma de fazer isto é a seguinte:
tipo nome[dim1][dim2]...[dimN] = {Lista de valores};
A lista de valores é um conjunto de valores separados por vírgulas. Por
exemplo, a declaração abaixo iniciliza um vetor inteiro de cinco posições.
int vetor[5] = { 10, 15, 20, 25, 30 };
Observe que nesta declaração é necessário que o tamanho do conjunto
seja conhecido antecipadamente. No entanto, também é possível inicializar vetores
em que não se conhece o seu tamanho. Observar que neste caso é importante que
o programador preveja um modo de indicar o fim do vetor.
O exemplo a seguir mostra os dois casos ilustrados acima. Para descobrir
como parar de processar o vetor apresentamos duas soluções possíveis. No
primeiro caso a condição de fim do vetor é o número negativo -1, sendo assim uma
posição do vetor é perdida para armazenar esta condição. No segundo caso é usado
o operador sizeof para descobrir o tamanho do vetor. Observe que sizeof calcula o
tamanho do vetor em bytes e por esta razão é necessário uma divisão pelo tamanho
em bytes do tipo de cada elemento.
#define DIM 5
#include <stdio.h>
void main(){
int vetor[DIM] = {10, 15, 20, 25, 30};
int vetor1[] = {10, 20, 30, 40, 50, 60, -1};
int vetor2[] = {3, 6, 9, 12, 15, 18, 21, 24};
unsigned int i, tam;
9