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

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

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語言程式求解釋,C語言程式,求解釋

我的看法,不一定對哦 include stdio.h struct st t 宣告結構體,長度2 2 32 void main include stdio.h 匯入標頭檔案 定義一個結構 struct st t 主函式 void main include stdio.h 包含標準的輸入輸出庫stdi...

C語言的一道題,求解釋,c語言一道題,求解釋

輸出的結果是 4294967293 分析如下 變數i是有符號數,i 3,而負數在記憶體中是以其補碼的形式存放的,3的補碼 int型的佔4個位元組32位 1,111 1111 1111 1111 1111 1111 1111 1101,其中最高位是符號位 0為正,1為負 而變數ud是無符號位的,那麼就...

c語言基礎問題,求解釋

這涉及到c語言的一些規定 第一就是自動向上轉換 也就是說 佔用空間少的型別和佔用空間多的型別運算,運算結果轉換為佔用空間多的型別 這是為了防止運算結果放在少空間發生溢位 int 佔用4個位元組 double 佔用8個位元組 運算結果 為double型別 這是因為最後加的x為double 型別的 如果...