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 代表...