1樓:莫霞板申
inta=3,b=5;
/*定義全域性變數,整個檔案作用域有效*/
max(int
a,int
b)/*入參總是a=8,b=5*/
void
main()
2樓:麼秀英天香
a=3,b=5;是全域性變數整個程式中可見,a=8為區域性變數;
區域性變數會在其作用域內遮蔽全域性變數,所以在main函式中a的值是8,b依然取全域性值5。
結果max(a,b)為8
3樓:浦利仍妙旋
如果區域性變數和全域性變數同名,那麼重名的全域性變數將在同名的區域性變數的作用域內隱藏。
4樓:匿名使用者
如果全域性變數和區域性變數重名,區域性變數將覆蓋全域性變數。所以區域性a覆蓋全域性amain內a = 8但是全域性b你沒有重名的,所以,main中b是全域性變數b=5懂?覆蓋的只是重名的,不是全部的,懂?
5樓:匿名使用者
int a=3,b=5; max(int a,int b) void main() (int a=8; printf("%d\n",max(a,b)); } 解答:a=3,b=5是全域性變數。因為最後一個a有賦值8,優先使用內部變數,a=8比b=5大,所以max取8.
6樓:匿名使用者
主函式是執行函式,所以必然執行main()
在main()中,重新定義並且賦值了區域性變數a=8,而max(a,b)求值的時候,a用的是區域性變數,因為它在區域性裡的優先順序大於全域性變數,而b沒有區域性變數,所以用到全域性變數b=5,因此求的是max(8,5)
7樓:匿名使用者
#include int a = 3,b = 5; int max(int a,int b) void main() main()函式中,定義了區域性變數a,所以這裡所有的a都是指區域性變數,全域性變數a在這裡沒有“立足之地”,當變數b則不同,由於在main()中沒有樑歪定義。所以這裡的b指的就是全域性變數b,所以呼叫函式max(a,b)等同於max(8,5)。
c語言問題 區域性變數能不能和全域性變數重名?
8樓:花落へべ若相惜
可以,只不過區域性變數可以覆蓋全域性的,就是在區域性變數的範圍內全域性變數不起作用
9樓:與子如初見
能,區域性會抄遮蔽全域性
。要用襲全域性變數,需要使用 "::" ;
區域性變數bai
可以與全域性變數同名du
,在函zhi數內引用這個變數時,會用到dao同名的區域性變數,而不會用到全域性變數。對於有些
編譯器而言,在同一個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義一個同名的區域性變數,而那
個區域性變數的作用域就在那個迴圈體內。
c語言中區域性變數可以同名麼?
10樓:匿名使用者
在c語言中,來相同作用域範源圍的區域性變bai量不可以同名。所以,du在不同作用域下,zhi可以出現區域性變數同dao名的情況。
1 在不同函式中。
函式不同,區域性變數完全無關,自然可以使用相同的名字。
2 在同一函式中,但作用域不同。
區域性變數的作用域是定義位置,到所在大括號結束。
所以只要兩個區域性變數屬於不同的大括號中,就可以同名。
比如void func()
for(;;)
}這裡面,第一個a的作用域包含了第二個和第三個,而後兩個之間作用域不相關。三個a分別屬於三個不同的大括號,可以同名。
11樓:匿名使用者
這個問題,其實舉例子什麼的都說都涵蓋不清楚。可以通俗的這樣說,在同一作用域內變數是不能重名的,原因很簡單,要是重名了,編譯器也不知道你呼叫的是哪個變數了。
12樓:匿名使用者
按你的語意來bai說,答案是不可du以的.
區域性指的就是
zhi一個域,在dao同一個域內變數內是不可以同名的.在vc++2005之前的版容本中.for迴圈的條件名句是限制在for迴圈內的,不過2010後的vc++版本,在for迴圈條件內申請的變數在迴圈個再次申請了報錯,
13樓:匿名使用者
區域性變數在不同的子函式中可以同名,但是在一個子函式中不能。
14樓:匿名使用者
如果你定義的變數不在同一個函式內,好像可以同名的。
15樓:匿名使用者
可以的啊。區域性變數的生存週期就在函式體內或迴圈體內
16樓:匿名使用者
看你同名的區域性變數的作用域了,如果作用域相同那就不可以了
17樓:匿名使用者
可以同名,例如:
在不同的兩個迴圈內:
for(int i=0; i<5; i++)for(int i=0; i<6; i++)
18樓:尼瑪真響亮
作用範圍不同的可以重名
c語言中全域性變數和區域性變數是一樣的名字有問題嗎?
19樓:老樹枝勾琬
如果內層**塊對外層**塊中的名字進行了重新定義,那麼在這個內層**塊中,外層的名字就被隱藏,
在離開這個內層**塊後,這些名字又再次表示外層的變數。
20樓:
區域性變數的作用域中全域性變數被遮蔽了
不受影響
但是最好起不同的變數名
自己也容易檢查不是嗎
21樓:督秀珍施己
this.temp=temp
不會有問題
各自的作用域不同
但是你要分的清楚才好
不建議使用相同的變數名
C語言中,區域性變數的預設儲存類別為A auto B static C register D extern
a.auto b.static c.register d.extern a 的變數在堆疊裡,自然是執行時 b 是靜態變數 c 是暫存器變數,使用的是cpu的暫存器 d 是全域性變數 bd都是放在資料段中的,編譯的時候就已經確定了位置 有的編譯器對b和d的處理不一樣 c語言 a,函式內部或語句組內部的...
c語言中,全域性變數和外部變數有什麼區別
外部變數也是全域性變數,被定義成外部變數是指這個變數沒有在當前 中,而是在另乙個 或二進位制檔案中。比如我在a.c中定義了變數myvar,還有乙個檔案b.c,它要用a.c中的myvar,這就要讓b.c知道myvar怎麼定義的,有兩種方法,一種是include a.c,但一般不這麼做 還有一種方法是在...
C語言中,全域性變數和外部變數有什麼區別
舉個生動的例子 全域性變數就像你們這棟樓 樓道裡的垃圾桶 外部變數相當於其他樓裡的垃圾桶 全域性變數的作用域是當前整個檔案 其他檔案要使用它,應該用extern來宣告它此時對於要用它的檔案來說,它就變成了外部變數了。全域性變數也稱為外部變數,它是在函式外部定義的變數。它不屬於哪乙個函式,它屬於乙個源...