Pergunta da primeira parte
Variável local : uma variável definida dentro do corpo da função, com escopo limitado ao corpo da função. Será inválido fora do corpo da função. Chamar novamente é um erro.
Variável Global: Definição: Todas as variáveis definidas fora de uma função, seu escopo é todo o programa, ou seja, todos os arquivos fonte, incluindo arquivos .c e .h.
#include<stdio.h>
int main()
{
int i=520;
printf("before: i=%d\n",i);
for(int i=0;i<10;i++){ //for语句中可以定义变量与外部 i作用域不同不发生冲突
printf("%d\n",i);
}
printf("after:i=%d\n",i);
return 0 ;
}
Segunda parte da pergunta:
As instruções de atribuição precisam ser executadas por funções. O corpo de execução mais básico da linguagem C é uma função. Você pode inicializá-la, mas não pode atribuir valores fora da função.
Padrão da linguagem C: As expressões de inicialização de variáveis globais (variáveis externas) e variáveis estáticas (variáveis estáticas) devem ser expressões constantes[1]
#include<stdio.h>
int a;
a=10;
int b;
b=a+a;
int main()
{
printf("%d\n",b);
}
Perguntas da parte 3
Os valores definidos nas variáveis globais podem ser modificados por cada função
Se a variável global não for inicializada, ela será automaticamente inicializada com 0 ;
Se houver uma variável local com o mesmo nome de uma variável global dentro de uma função, o compilador não reportará um erro, mas protegerá a variável global na função (ou seja, a variável global não funcionará nesta função);
Não use um grande número de variáveis globais: o uso de variáveis globais ocupa mais memória e não é liberado até que o programa saia do momento da definição.