為什么我寫賦值為 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;
}
2016-10-03
首先你賦值為00123不是000123。然后char c表示定義一個字符型變量c ,初值為00123。在C語言中,八進制數通常前面加一個0,比如,00?。埃怠。埃玻返?,而你的00123系統判定為八進制。3*8^0+2*8^1+1*8^2+0*8^3=83。
2016-10-03
char型數據類型是用來存儲單個字符的,這里00123是S的ASCII的8進制表示,所以你賦值的是S而不是00123