C語言的問題

2023-02-05 14:20:21 字數 553 閱讀 6864

1樓:

結果:28

說明:最上面的 int a=4 中的a是個全域性變數,在任何函式中引用該變數有效,本題在主函式中有int s=a,於是s=4,但是區域性中如果出現相同變數名,全域性被遮蔽,區域性的使用有效,子函式中有static int a=5;它是個區域性的靜態變數,a=5,不會影響全域性中的變數a,我們完全可以把它理解為2個不同的變數,還要注意 靜態變數在子函式呼叫結束後,變數並不會被馬上釋放,因為存在靜態區,要到程式終止才會被釋放

2樓:匿名使用者

28main 函式裡的s=a; //a為全域性變數4所以此時s=4;

結果應為s+f(0)+f(1);

f(0) 執行if(n%2)

t=6return t+a++; //static int a=5;

時 t+5=11

//又 a++, //static int a=6;

f(0)=11;

f(1)=7+6;

11+13+4==28

嗯,是要反下的,寫錯了,不過對結果沒影響的。

c語言的問題,C語言的問題

union是聯合體,其中的所有變數共用一片記憶體空間,該空間長度為union中最長的變數長度,即int陣列i 2 的長度8。union會牽涉到大小端問題,而題中給出的陣列的第0個元素在低位並不能說明機器為大端序還是小端序,因為陣列的生長方向永遠向上,和大小端以及堆疊的生長方向沒有關係。這意味著這道題...

c語言問題,C語言問題?

include include int main max min i 0 sum i 0 i 1 i 2 i 3 i 4 i 5 i 6 for j 0 j 6 j printf 去掉一個最高分 0.6lf max printf 去掉一個最低分 0.6lf n min printf 該選手最後的得分...

c語言問題,C語言問題?

char的範圍是 128 127的 你362就溢位了嘛 是這樣的 0362 0是表示8進位制 於是362在10進位制下是242 242溢位了 128 127 於是結果變成242 128 128 14 要明白這個,首先要明白記憶體中 c 變數是什麼樣子的。整數在記憶體中是以補碼的形式存取的。c 036...