懂的各位幫我解答下面這個c語言程式好嗎為什麼答案是6不是4呢

時間 2022-02-08 14:35:07

1樓:姚兄

fun3 函式中 有一個關鍵字 static 定義了一個靜態全域性變數有以下特點:

1,該變數在全域性資料區分配記憶體;

2,未經初始化的靜態全域性變數會被程式自動初始化為03,靜態全域性變數在宣告它的整個檔案都是可見的,而在檔案之外是不可見的;

可見 static不是來打醬油的

第一次 呼叫fun3 ,a=3+2=5

第二次 呼叫fun3 ,a=5+1=6 (靜態全域性變數,故值沿用原來的5)

2樓:匿名使用者

看fun3中的靜態變數,靜態變數在執行mian前已被初始化,且只初始化這一次

首先a=3

執行main

呼叫fun3:a=a+2=5;

呼叫fun3:a=a+1=5+1=6;(a因為是靜態的,所以每次值都被儲存,而不是呼叫fun3時初始化為3)

輸出結果

3樓:匿名使用者

fun3函式裡面變數a被定義成靜態變數:static,靜態變數的作用域是整個檔案,在呼叫時會保持原數值。第一次呼叫後a=5,第二次呼叫時a的值從5開始,而不是重新賦值成3。

為什麼這個程式輸出結果b2=7啊,為什麼不是b2=6啊,求懂c語言的幫忙解答一下,謝謝了!!!

4樓:匿名使用者

a || (b = a + c) && c; 因為a=5為真,所以執行的是a&&c

a && (b = b + 1) || (c = b + 1);

因為a為真,b=b+1也為真,所以(c = b + 1)不執行。

綜上有意義的執行就是兩次b=b+1,

所以結果為5,7,4

跪求C語言能人幫我檢查這個C語言程式設計,急求,不勝感激

執行過了,結果是對的。include include int fun long x if d n x j n d 0 d歸0 return j main 當然不是死迴圈的原因,就不要亂說了.是因為你的d變數每一輪之前都沒有置0,導致d越加越大.把d 0放到while的上一句就好了 一樓的還是不行,二...

下面的c語言程式什麼意思啊?求解答

看懂不管什麼 都有一些非常有意思的技巧 我假設我現在從來沒看過氣泡排序,和你一起分析一下這 int a n 初始化了亂序陣列 int i,j,temp 嗯?i,j,temp幹嘛的?我暫時不知道,因為我還沒往下看,我先記著有這幾個變數 for j 0 j n 2 j for i 0 i n j 1 i...

各位大俠,幫我做c語言題,各位大俠,幫我做一個C語言題

for j 0 j 6 j 迴圈上界改為5,否則下面的a j 1 a j 陣列越界。for j 0 j 6 j 迴圈只應做陣列資料的後移。改後的程式如下 include stdio.h define n 6 void main a 0 k for n 0 n 6 n printf 2d a n pr...