在面试和笔试的时候可能会遇到很多类似下面的题目,int 与 unsigned int 相加,或者除之类的,这里统计了一下之前遇到的问题。想要学习的还是自己gcc filename
和./a.out
一下比较有效果。
1.
#include <stdio.h>
int main()
{
int i = -10;
unsigned int j = 3;
// unsigned char j = 3;
if((i+j) > 7) printf(">7\n");
else pritnf("<=7\n");
return 0;
}
输出:>7
unsigned int 和int型进行运算,int型要转为unsigned int,运算结果为unsigned int。
2.
#include <stdio.h>
int main()
{
int i = -2;
unsigned int j = 9;
// unsigned char j = 9;
printf("%d",j/i);
return 0;
}
输出:0
所有比int型小的数据类型(包括char,signed char,unsigned char,short,signed short,unsigned short)转换为int型。如果转换后的数据会超出int型所能表示的范围的话,则转换为unsigned int型;
参考:
http://blog.csdn.net/qq_24373811/article/details/52922272