為什么我寫賦值為 000123,后的結(jié)果是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表示定義一個(gè)字符型變量c ,初值為00123。在C語言中,八進(jìn)制數(shù)通常前面加一個(gè)0,比如,00?。埃怠。埃玻返?,而你的00123系統(tǒng)判定為八進(jìn)制。3*8^0+2*8^1+1*8^2+0*8^3=83。
2016-10-03
char型數(shù)據(jù)類型是用來存儲(chǔ)單個(gè)字符的,這里00123是S的ASCII的8進(jìn)制表示,所以你賦值的是S而不是00123