兩種賦值 結(jié)果不同。
#include <stdio.h>
int main()
{
? ??
? ? int x,y = 10;
? ? //使用簡(jiǎn)單賦值語(yǔ)句實(shí)現(xiàn)x乘以2。
? ? x=x*2 ;
? ? //使用復(fù)合賦值語(yǔ)句實(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;
? ? //使用簡(jiǎn)單賦值語(yǔ)句實(shí)現(xiàn)x乘以2。
? ? x=x*2 ;
? ? //使用復(fù)合賦值語(yǔ)句實(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ù)中定義的變量(局部變量)未賦予初值的話,其值是不確定的。 只有全局變量會(huì)被默認(rèn)初始化為0。
也就是說(shuō)x的值完全是未定的,可能是0,也可能是任何值。 ?不同的平臺(tái)、不同的編譯器可能會(huì)有不同的結(jié)果,對(duì)此測(cè)試毫無(wú)意義。 而且編譯器通常會(huì)給出“x未初始化”之類的警告。
2015-06-26
好吧 自答。。。?
慕課網(wǎng) 的 ?后臺(tái) 出來(lái)。。。。
這個(gè)在線版的IDE 該換了。。。。
本人親測(cè),, windows 上,無(wú)問(wèn)題。。。。。。
2015-06-26
int x,y = 10; ? 結(jié)果是x=0, y=10?