C語言全域性變數問題
阿新 • • 發佈:2021-02-16
技術標籤:c語言
#include<stdio.h>
void fun()
{
printf("%d,%d",a,b);//有錯誤,因為a,b在他下面定義
}
char a='A',b='B';
void fun1()
{
a='C';
b='D';
}
int main()
{
fun();
printf("%c,%c"a,b);//輸出C,D
fun1();//
}
//對於fun1來說,他的a,b都在全域性變數所以在主函式中呼叫不變。
//可變為下面
{ char a='A',b='B';
void fun1 ()
{
a='C';
b='D';
}
int main()
{
fun();
printf("%c,%c"a,b);//輸出C,D
fun1();//
}
}//fun1(),main()都在a,b變數範圍內。
//下面這個才對
#include<stdio.h>
char a='A',b='B';
void fun()
{
printf("%d,%d",a,b);
}
void fun1()
{
a='C';
b='D';
}
int main()
{
fun();
printf ("%c,%c",a,b);
fun1();
}
//總結:理解全域性變數的作用範圍,在他範圍內可以不定義直接使用。定義全域性變數之後,一下就都是他的範圍內了。