#define SS sizeof(int)
5 int main()
6 {
7
8 int a = -1;
9
10 if( a < SS){
11 // 不会输出,因为 ss 是为符号类型。而 a 是 是有符号类型的,两个比较
12 // 产生了,算术运算副的升级,
13 printf("-----------<<<%d\n",a);
14
15 }
16 if(a<0){// 会输出,因为没有产生,计算的升级
17 printf("<<<--------%d\n",a);
18 }
19 printf("hello world\n");
20 return 0;
21
22
23 }
5 int main()
6 {
7
8 int a = -1;
9
10 if( a < SS){
11 // 不会输出,因为 ss 是为符号类型。而 a 是 是有符号类型的,两个比较
12 // 产生了,算术运算副的升级,
13 printf("-----------<<<%d\n",a);
14
15 }
16 if(a<0){// 会输出,因为没有产生,计算的升级
17 printf("<<<--------%d\n",a);
18 }
19 printf("hello world\n");
20 return 0;
21
22
23 }
比较符号类型与有符号类型在C语言中的行为差异
本文探讨了C语言中符号类型(如'char')与有符号类型(如'int')在进行比较操作时的行为差异,通过具体代码实例展示了算术运算升级的过程,并对比了不同情况下输出结果的不同。
67

被折叠的 条评论
为什么被折叠?



