小白菜提問(wèn)題
#include <stdio.h>
int main(){
int a,b=322;
float x,y=8.88f;
char c1='k',c2;
a=y;
x=b;
a=c1;
c2=b;
printf("%d,%f,%d,%c",a,x,a,c2);//x=322.00000,a=107,c2=322
return 0;
}
為什么x=322.00000,a=107,c2=322 求解釋
#include <stdio.h>
int main(){
int a,b=322;
float x,y=8.88f;
char c1='k',c2;
a=y;
x=b;
a=c1;
c2=b;
printf("%d,%f,%d,%c",a,x,a,c2);//x=322.00000,a=107,c2=322
return 0;
}
為什么x=322.00000,a=107,c2=322 求解釋
2017-10-11
舉報(bào)
2017-10-11
因?yàn)閤是float類(lèi)型的,322賦值給x,就會(huì)自動(dòng)變成float類(lèi)型,就是322.000000
a首先被賦值y,但是隨后賦值K給a,就將前面的賦值覆蓋掉了,然后因?yàn)閍是int類(lèi)型,而k是字符類(lèi)型,實(shí)際輸出的就是字母k的ASCII碼(美國(guó)信息交換標(biāo)準(zhǔn)代碼)。
c2是字符串類(lèi)型,int類(lèi)型的322賦值給c2的時(shí)候322就變成了一個(gè)字符串,隱式轉(zhuǎn)換