当表达式存在有符号类型与无符号类型时,所有的操作数都自动转换成无符号类型。
有符号类型——>有符号类型:正数不变,负数按补码形式转换成正数,运算出的结果也按补码转换成正数。
不说别的,上代码:
#include<stdio.h>
char getChar(int x,int y)
{
char c;
unsigned int a=x;
(a+y>-1)?(c=1):(c=2);
return c;
}
{
char c;
unsigned int a=x;
(a+y>-1)?(c=1):(c=2);
return c;
}
void main()
{
char c1=getChar(7,4);
char c2=getChar(7,3);
char c3=getChar(7,-7);
char c4=getChar(7,-8);
{
char c1=getChar(7,4);
char c2=getChar(7,3);
char c3=getChar(7,-7);
char c4=getChar(7,-8);
printf("c1=%d\n",c1);
printf("c2=%d\n",c2);
printf("c3=%d\n",c3);
printf("c4=%d\n",c4);
printf("c2=%d\n",c2);
printf("c3=%d\n",c3);
printf("c4=%d\n",c4);
}
答案是4个2,答错的小伙伴们可要记住了哦