!x++是怎么个运算顺序

x=0;
!x++;
输出的x是?
麻烦解释详细点,谢谢


++在变量后面,先使用变量后自增

!x++ 等价于  !x; x=x+1;

所以 !x++; 的结果是 1, 输出的x也是1 


#include<stdio.h>

int main()

{

    int x = 0;

    printf( "!x++ : %d,x:%d\n", !x++, x);

    return 0;

}



结果:


温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-12
!去处与++运算同组,结合性是从右向左。因此!x++等价于!(x++),表示++作用于x,不作用于!x。x取反作为表达式的值,即表达式的值为1,!x++;语句执行后,x的值也是1。
结论:!x++这个表达式的值为1,!x++;语句执行后,x的值也是1。追问

!x++等价于!(x++),你的意思是自加的优先级高于非的优先级?

追答

!去处与++运算同级,结合性是从右向左。

本回答被提问者采纳
第2个回答  2012-07-18
! 与++ 同优先级,按运算符顺序,先! 由于其结合性为从右到左,!x,显然为1,然后再运算x++,之后x=1;表达式的值为!x的值,x++,只是针对x而言,而不改变表达式的值。
第3个回答  2012-07-18
输出的x=1,因为x++是在这个运算结束后才会+1的,所以在!x++的时候,x还是0,这样取反的话,x=1。已经经过VC6.0验证结果

!x++是怎么个运算顺序
++在变量后面,先使用变量后自增 !x++ 等价于 !x; x=x+1;所以 !x++; 的结果是 1, 输出的x也是1 include<stdio.h> int main(){ int x = 0;printf( "!x++ : %d,x:%d\\n", !x++, x);return 0;} 结果:

c 语言中x++ 谁能解释一下
x++ 是先运算后 + 1 x = 5 比如printf('%d',x++); 输出的结果是:5 ++x 是先+1 后运算 同样x = 5 printf('%d',++x); 输出的结果是:6。简单的来说,++i 和 i++,在单独使用时,就是 i=i+1。而 a = ++i,相当于 i=i+1; a = i;而 a = i++,相当于 a = i; i=...

关于X++和++X的提问
++X是先加1后运算。所以 int y,x=7;y=x++;这个是先运算后在自己加1 x=8,y=7;int y,x=7;y=++x;这个是先自己加1在运算 x=8,y=8

x++表达式的问题
x++表示先运算,后自增 ++x表示先自增,后运算 x=5;y=x++*x++*x++; 相当于y=(x++)*(x++)*(x++);因为++的运算优先级高于*运算。还有就是,一个表达式中的变量只能是一个值,所以不会出现,第一个为5,第二个为6,第三个为7的情况。但是由于进行了3次++运算,因此下次使用X时,其...

c语言逻辑运算顺序
就是这个顺序 x++是先使用x的值,再++,之后,x的值变为0.所以x++>=0这个表达式的值为false 对于逻辑与运算,如果第一个表达式为false,则第二个表达式将不验证 所以!(y--<=0)没有执行,y的值仍然为5 对于或运算,若第一个表达式的值为false,则还要验证第二个表达式 于是z=x+y执行了,表达式的...

设int x=1,y=1; 表达式(!x++||y--)的值是多小?
逻辑运算符号 !和算术运算符号--为相同等级,为第二优先等级,逻辑或运算符号||为第12优先等级,故此语句的计算是这样的:先计算!X和y--,因为!x=0;y--=1,再计算||,也就是0||1,那么此时您应该知道结果是多少了,就是1,所以您所提的问题的运算顺序已经解决了.希望能帮助到您,...

x++ 在什么情况下运行,比如x=6,为什么有时候输出的是7而不是6?
x++ 中,++在 x 的后面,表示使用完 x 后,再把 x 的值加1,但是,当时使用x 的时候,x的值还是不变的。比如 x=6;printf("%d",x++);输出 6,此后 x 再加1 而 x=6;x++;printf("%d",x);则输出 7,因为printf之前,已经有 x++ ,使用完 x ,并把 x 的值加1 了。

我想知道做C++题目的时候,++X和X++具体细节上的区别,C++高手门请进_百 ...
++x,x++,前自增,后自增,其实要理解很简单,++x就看着是先把x加1之后再放入这条语句,x++就看着这条语句完了再加1。其实呢,在++x和x++都能用的情况下,最好用++x,因为,x++,也加了,它还要保存x原来值的副本,因为x原来的值还要参加运算,完了之后还要释放,所以效率没有++x高,虽然...

关于++ 的用法
x++的意思是先x参加运算,然后自加。++x的意思是先x自加,然后参加运算。(x++)+(++y)+x+y,x先和后面(++y)做加的运算,而(++y)先自加(++y)=5.3,然后和x相加为5.3+x=5.3+3.5=8.8,然后x自加为x=4.5,所以第二个x的值为4.5 ...

C语言 请帮忙详细解释下x++和++x
x++:先赋值在自加,表达式的值为x,而x的值加1,比如b=5,a=b++,那么a=5,b=6;++x:先自加后赋值,表达式的值为x加1后的值,x自身加1.比如b=5,a=++b,那么a=6,b=6;所以你f()函数返回的是x的值,不是加1后的;

相似回答