求解釋一簡單c語言例子,求解釋一簡單C語言例子

時間 2021-08-11 17:26:23

1樓:公子風起

a++,是先使用a的值,再自加1

++b,是先自加1以後再使用b的值

a++=%d,它是先使用a的值,a=6,並顯示了以後再自加,令a=7

++b=%d,他是先讓b自加,此時b=b+1=8,並顯示

這裡的a,b都要自加1,所以最後a=7,b=8

但在螢幕上a顯示的是先前的值,b顯示的是自加後的值,但在程式執行後,

所以這裡用的a,b值是a=7,b=8,a%b是取餘數,7除以8,餘數是7

printf("c=%d\n",c=a>b?a:b);

c=a>b?a:b是條件運算,a>b成立的話,用:前面的值,不成立則用:後面的值,a=7,b=8,a>b不成立,所以c=b=8

printf("d=%d\n",d=a>=0&&a+b>=10);

這裡要搞清楚運算子的優先順序,賦值運算子=最低,算術運算子高於關係運算子

d=這是這個式子的運算順序

&&是邏輯運算,成立就是1,不成立是0,所以d=1

d+=d*=(c,d=c,5*d);

printf("d=%d\n",d);

(c,d=c,5*d)這是逗號運算,也叫順序求值,按順序求解各表示式的值,但整個逗號表示式的值是最後個表示式5*d的值

分解下c c=8

d=c d=c=8(這後面要用到d的值)

5*d 5*d=5*8=40

整個表示式的值就是40

d+=d*=(c,d=c,5*d);也就是d+=d*=40

他的求解是從右到左,d*=40,,,d=d*40=8*40=320(注意:這裡d的值變為了320)

然後就是d+=320,d=d+320=640

所以最後顯示d的值是640

寫的辛苦啊

2樓:匿名使用者

#include

void main ()

好好學 ,要不你對不起我!!

3樓:匿名使用者

a++他它的值任然是6不變,在使用之後,使a的值加1,但原值不變++b,在使用之前先加1,再把8賦值給b,至於下面的

a的值在上面已經被+1了,所以是7了,

4樓:

void main ()

5樓:

++a,為將a代入運算,待此語句完成後,再執行++的動作。

a++,為在代入運算前先自加,然後代入。

至於最後的d+=d*=(c,d=c,5*d);一句,注意運算為自右到左的順序,應該不難解決。

回答完畢。。

6樓:匿名使用者

a++是在此條語句完了之後再執行+1操作,++a 是先進行了+1操作,

所以

相當於b=b+1;

a=a+1;

7樓:匿名使用者

a++ :先利用a原來的值6進行列印,然後進行++,變為7++b :先進行++操作變為8,後進行列印操作至於 d+=d*=(c,d=c,5*d);

進行到這一步的時候c=8,先計算最右端括號中的表示式,依次為(8,d=8,5*8);

結果返回最後一個表示式5*8即40,接下來計算d*=40,得到d=320,最後再計算d+=320.得到640

8樓:匿名使用者

a++是執行完此語句後才自加1 如果是++a就是先自加再顯示了

9樓:匿名使用者

#include

int main(void)

簡單c語言程式求解釋

10樓:故事多

#include

int main()

}return 0;}

11樓:

資料型別沒有明確為int(整型)

int a,b,c,d,e,f,g,h; 改為int a,b; float c,d,e,f,g,h;

scanf("%d %d %d",&c,&d,&e); 改為scanf("%f %f %f",&c,&d,&e);

12樓:先森丶我神經

這麼定義p是為了讓它與a的列數一致,*(*(p+i)+j)中p+i表示a這個陣列第i行的地址,*(p+i)表示的是a陣列第i行的首地址,也就是a[i][0]的地址;後面再加個j就是a[i][j]的地址,再加個*就是取a[i][j]的值了

再回到第一個問題,如果給p包含3個整型一維陣列的話,p+i表示的就不是a的第i行的地址了,結果也就不同了

求解釋、一道簡單的c語言題目、

13樓:流雲的歌

我總共做了三個測試。

只有x[0] = 0(或="null");時,沒有給後面的x[1]x[2]賦值時結果是7,0,說明這個字串是空串。所以是0.

當只有x[1] = '\0';時,顯示7.1;

第三個測試是測試strlen()這個我不用說了。

14樓:小囚love臘肉

x[0]=0;x[1]='\0'這兩句賦的值一樣,都是'\0'即0

15樓:匿名使用者

x[0]=0,這個0沒有帶單引號,意味著給x[0]賦的值不是0,而是ascii碼值為0的字元,即null或'\0',意味著字串的結束

c語言入門經典裡的一個簡潔的例子,求大神指點,100分!!!

16樓:匿名使用者

函式bai

中的變數pay是開設在堆du中的,如zhi果採用(2)呼叫printf時先入棧dao的是*pnew_pay,正巧這時堆還回未被printf沖掉,可以將已答廢棄的pay位置的值返回;而(1)由於先呼叫了一遍printf堆中的pay位置資料被用作其他而值被改過了,所以不對。

依此,你在(1)中將兩個printf顛倒一下有可能還是能輸出正確的值的。

一道C語言題,跪求解釋

由巨集定義 define 的作用是 純粹替代,所以lz的句子等效於 t a b c d a b c d 10 由於 的等級高於 條件運算?所以結果就為 7 6?7 60 結果自然就是 7 了 include define max x,y x y x y main 如果是這樣的話,就是70,但是你的程...

c語言問題求解釋其中whileb 的意思

在c語言中,0表示假,非0表示真。while b 表示b等於0時,判斷條件為真,執行迴圈體 否則為假,不執行。非運算子 為單目運算子,具有右結合性。參與運算量為真時,結果為假 參與運算量為假時,結果為真。例如 0為真 9為假。雖然c編譯在給出邏輯運算值時,以 1 代表 真 0 代表 假 但反過來在判...

c語言題目。求解釋有問號的地方謝謝

6d 指定寬度6位輸出整數,若位數小於6在左端補以空格,應該是若大於等於零在前面加上 c 輸出一個字元 f 懷疑應為e,以指數形式輸出實數 輸出 這個字元 6.3s 輸出一個字串,佔6列,保留3個字元,為顯示在左側 c語言題目。有疑問?請解釋圖中兩個有問號的地方,謝謝 gta小雞 exit 1 代表...