【代碼如下】
#include <stdio.h>
#include <conio.h>
int main()
{
int a=5,b=4;
printf("最后的輸出結果是%d,但a的值是%d",(a=2*8,a/4));
a=2*8,a/4;
printf("\na的值是%d",a);
printf("\na與b比較的結果=%d",a==b);
getch();
}
【輸出結果如下】
最后的輸出結果是4,但a的值是4198859
a的值是16
a與b比較的結果=0
問:輸出結果中a的值是4198859是怎么來的?
uj5u.com熱心網友回復:
4198859應該是個隨機值,因為printf("最后的輸出結果是%d,但a的值是%d",(a=2*8,a/4));這是一個逗號運算式,只能算一個值,第二個%d沒有值傳給它!逗號運算式:運算順序從左到右,整個運算式的值為最后一個運算式的結果.
比如這里:(a=2*8,a/4)的計算程序:
a=2*8 計算完后a =16;
然后計算a/4 計算結果為4;
所以整個運算式的結果是4;
所以printf中的第一個%d列印4.
第二個%d壓根就沒有傳值!
uj5u.com熱心網友回復:
printf("最后的輸出結果是%d,但a的值是%d",(a=2*8,a/4));這句代碼里有兩個%d,那么后面有幾個引數對應呢?一個吧。那么另一個是不是一個隨機值呢?
uj5u.com熱心網友回復:
謝謝大佬,我明白了
uj5u.com熱心網友回復:
謝謝大佬,我明白了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/22506.html
標籤:C語言
