!i++怎么理解?

来源:百度知道 编辑:UC知道 时间:2024/06/03 20:13:45

返回!i 如果i非0,则返回0,如果i为0则返回1
然后i自增1

#include "stdio.h"
void main()
{
int i=-2;
printf("%d\n",!i++);
printf("%d\n",!i++);
printf("%d\n",!i++);
printf("%d\n",!i++);
printf("%d\n",!i++);
printf("%d\n",!i++);
}

值是
0
0
1
0
0
0

上面是用Turbo C 2.0编译器
是先执行 !i ,后执行 i++ 的,当i为非0时,!i为0,当i为0时,!i为1
不知道你用什么编程语言的,就只能这样回答了

!的优先级比较高,所以是先取非,再自加

i++是先用后加,!i++等于(!i)++.