兩種賦值 結(jié)果不同。
#include <stdio.h>
int main()
{
? ??
? ? int x,y = 10;
? ? //使用簡單賦值語句實(shí)現(xiàn)x乘以2。
? ? x=x*2 ;
? ? //使用復(fù)合賦值語句實(shí)現(xiàn)y乘以2。
? ? y*=2;
? ? printf("x=%d\n", x);
? ? printf("y=%d\n", y);
? ? return 0;
}
????在慕課網(wǎng)在線ide 輸出結(jié)果是?
x=0?
y=20
????原版的代碼是
#include <stdio.h>
int main()
{
? ? int x = 10;
? ? int y = 10;
? ? //使用簡單賦值語句實(shí)現(xiàn)x乘以2。
? ? x=x*2 ;
? ? //使用復(fù)合賦值語句實(shí)現(xiàn)y乘以2。
? ? y*=2;
? ? printf("x=%d\n", x);
? ? printf("y=%d\n", y);
? ? return 0;
}
????輸出結(jié)果是
x=20
y=20?
發(fā)生了什么 導(dǎo)致這兩種結(jié)果的差異 呢 ?
2015-06-26
相當(dāng)于
C標(biāo)準(zhǔn)規(guī)定:函數(shù)中定義的變量(局部變量)未賦予初值的話,其值是不確定的。 只有全局變量會被默認(rèn)初始化為0。
也就是說x的值完全是未定的,可能是0,也可能是任何值。 ?不同的平臺、不同的編譯器可能會有不同的結(jié)果,對此測試毫無意義。 而且編譯器通常會給出“x未初始化”之類的警告。
2015-06-26
好吧 自答。。。?
慕課網(wǎng) 的 ?后臺 出來。。。。
這個在線版的IDE 該換了。。。。
本人親測,, windows 上,無問題。。。。。。
2015-06-26
int x,y = 10; ? 結(jié)果是x=0, y=10?