您的位置:首页 > 编程语言 > C语言/C++

C和C++语言知识汇总

2015-01-30 11:27 204 查看
1.有符号和无符号的问题

#include<stdio.h>

int main()

{

unsigned int a=6;

int b=-20;

printf("%d\n",a+b);

(a+b)>6? puts(">6"):puts("<=6");

return 0;

}

结果是:-14 >6

解析:

有符号数和无符号数进行比较运算时(==,<,>,<=,>=),有符号数隐式转换成了无符号数(即底层的补码不变,但是此数从有符号数变成了无符号数),比如上面 (a+b)>6这个比较运算,a+b=-14,-14的补码为1111111111110010。此数进行比较运算时,被当成了无符号数,它远远大于6,所以得到上述结果。

2.关于i++和++i
http://blog.csdn.net/gqb_driver/article/details/8668670 http://blog.csdn.net/droidphone/article/details/23367051
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: