主要是int和unsigned int默认情况下的转换,还有就是char和signed char是不是一样的,int与signed int 、short int是不是一样的
char foo(void)
{
unsigned int a=6;
int b=-20;
char c;
(a+b>6)?(c=1):(c=0);
return c;
}求c的值
没有signed char类型吧!
c=1;
这里是数值1默认转化为char类型!你可以试一下:
char foo(void)
{
unsigned int a=6;
int b=-20;
char c;
(a+b>6)?(c='1'):(c=0);//这里‘1’是字符
printf("%d ",c+1);//这里c转化为ASCII码值参与数值计算!
printf("%s\n",typeid(c).name());//用于验证c的类型,包含在头文件中!
return c;
}