亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

為什么我寫賦值為 000123,后的結果是83呀

#include <stdio.h>

int main()

{

? ? char c = 00123;

? ? int n ;? ? ? ? //將c賦值給n

? ? float f ;? ? ? //將c賦值給f

? ? double d;? //將c賦值給d

? ? n=c;

? ? f=n;

? ? d=f;

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

? ? printf("%f\n",f);

? ? printf("%lf\n",d);

? ? return 0;

}

http://img1.sycdn.imooc.com//57f21bab00019d9b12861170.jpg

正在回答

2 回答

首先你賦值為00123不是000123。然后char c表示定義一個字符型變量c ,初值為00123。在C語言中,八進制數通常前面加一個0,比如,00?。埃怠。埃玻返?,而你的00123系統判定為八進制。3*8^0+2*8^1+1*8^2+0*8^3=83。

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

Include9stdio_h0 提問者

非常感謝!
2016-10-05 回復 有任何疑惑可以回復我~
#2

Include9stdio_h0 提問者

不過 賦值000123,后面運行結果也是83呢
2016-10-05 回復 有任何疑惑可以回復我~
#3

超級噴噴 回復 Include9stdio_h0 提問者

不管00123還是000123都判定為八進制,實際上這都是不規范的的寫法。所以你輸入00123,000123,0000123...都一樣。
2016-10-08 回復 有任何疑惑可以回復我~

char型數據類型是用來存儲單個字符的,這里00123是S的ASCII的8進制表示,所以你賦值的是S而不是00123

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

舉報

0/150
提交
取消

為什么我寫賦值為 000123,后的結果是83呀

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

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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