c语言中-i- -啥意思

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-31
c语言中-1是啥意思

正确答案是2次。
楼主可以把下面的程序在计算机VC6.0环境下运行看看结果就知道哦

程序清单:
#include
using namespace std;
int main()
{
int t=1;
while(-1)
{
printf("nice dream
");
t--;
if(t)
break;
}
return 0;
}

最后屏幕上输出两行:
nice dream
nice dream
哈哈

下面对楼主解释一下-1
在c中,-1你可以认为是非零,那么只要while里面的判断非零,就会循环执行,所以这里的
while(-1)的供能也是循环执行,类似于while(1)
第一次执行时候,t--之后t=0;那么if不成立,所以不会执行break
第二次执行的时候,t--之后t=-1;那么if成立,所以执行break,这样就会跳出while循环
所以一共执行了两次
嘿嘿~~~希望可以共同进步哦 楼主@_@

!是C语言的逻辑非函数。
!a的运算规则为:
1 a如果为0,结果为1;
2 a如果不为0,结果为0。
于是i=!i的作用就是,如果i非0,则i值赋值为0,否则i值赋值为1.
i=!i与i=(i==0);效果相同。

-i--就是先进行i--运算,然后再取其负值。

下面是C语言运算符的优先级:

--与负号处于同一优先级,而结合方向是从右到左,所以是先进行i--运算,再取负号。

i--就是把i自减1,但是它的返回值却是i,这就是i--与--i的区别,--i的返回值就是i-1了。


具体看下面一个程序:

#include<stdio.h>
int main(void)
{
int i = 2;
int j = 2;
printf("i的初始值的为%d
",i);
printf("j的初始值的为%d
",j);
printf("-i--的值的为%d
",-i--);
printf("- --j的值的为%d
",- --j);
printf("i的值的为%d
",i);
printf("j的值的为%d
",j);

}

结果为:



先使用-i的值,然后i = i-1;