第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

兩種賦值 結果不同。

#include <stdio.h>

int main()

{

? ??

? ? int x,y = 10;

? ? //使用簡單賦值語句實現x乘以2。

? ? x=x*2 ;

? ? //使用復合賦值語句實現y乘以2。

? ? y*=2;

? ? printf("x=%d\n", x);

? ? printf("y=%d\n", y);

? ? return 0;

}

????在慕課網在線ide 輸出結果是?

x=0?

y=20

????原版的代碼是

#include <stdio.h>

int main()

{

? ? int x = 10;

? ? int y = 10;

? ? //使用簡單賦值語句實現x乘以2。

? ? x=x*2 ;

? ? //使用復合賦值語句實現y乘以2。

? ? y*=2;

? ? printf("x=%d\n", x);

? ? printf("y=%d\n", y);

? ? return 0;

}

????輸出結果是

x=20

y=20?

發(fā)生了什么 導致這兩種結果的差異 呢 ?


正在回答

3 回答

int?x,?y?=?10;

相當于

int?x;?//?x未初始化
int?y?=?10;

C標準規(guī)定:函數中定義的變量(局部變量)未賦予初值的話,其值是不確定的。 只有全局變量會被默認初始化為0。

也就是說x的值完全是未定的,可能是0,也可能是任何值。 ?不同的平臺、不同的編譯器可能會有不同的結果,對此測試毫無意義。 而且編譯器通常會給出“x未初始化”之類的警告。


0 回復 有任何疑惑可以回復我~
#1

李永東 提問者

非常感謝! 我需要的就是這樣的解答, 但是大部分的人不會想到是編譯器的問題,我只是猜測,所以放到這里供大家看,也找到答案。再次感謝,可以把語法講的再詳細點嗎?語法中哪個部位需要改動才能達到目的,避免這種情況發(fā)生?
2015-06-26 回復 有任何疑惑可以回復我~
#2

onemoo 回復 李永東 提問者

如果你需要所有變量都有初值,那最好分開定義,分別給初值,這樣也比較直觀,不容易寫錯。
2015-06-27 回復 有任何疑惑可以回復我~

好吧 自答。。。?

慕課網 的 ?后臺 出來。。。。

這個在線版的IDE 該換了。。。。

本人親測,, windows 上,無問題。。。。。。

0 回復 有任何疑惑可以回復我~
#1

李永東 提問者

怎么刪除這個。。。。
2015-06-28 回復 有任何疑惑可以回復我~

int x,y = 10; ? 結果是x=0, y=10?

0 回復 有任何疑惑可以回復我~
#1

李永東 提問者

剛看到回答 以為自己記錯了, 但是 慕課網在線版的輸出結果是 x=0,y=20 怎么得到這個結果的 可以暫且先不說, 但是 您知道為啥 兩次輸出結果不同 么 ? (謝謝捧場。)
2015-06-26 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

兩種賦值 結果不同。

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號