C语言中后置自增(减)运算符的使用

来源:互联网 发布:体育比赛直播软件 编辑:程序博客网 时间:2024/06/04 18:43

        我们知道前置自增(自减)运算符是先增(减)再运算,而后置自增(自减)运算符则是先运算后自增,然而有时候仍然会在后置运算符这里犯错。先运算再自增也就是等都运算完之后才自增,即使括上括号也是最后才自增,不要被括号干扰。助记:可认为自增的运算符优先级最低,还不如赋值运算符高,可能这样理解不太恰当,但效果好像是一样的。

测试代码:

#include <stdio.h>#include <stdlib.h>int main(){    int a=2, b=2, c=2, d=2, e=2;    c = - a++;    d = -(b++);    e = -e++;    printf("a=%d\n", a);    printf("b=%d\n", b);    printf("c=%d\n", c);    printf("d=%d\n", d);    printf("e=%d\n", e);    return 0;}
测试结果:

最后一句e之所以等于-1,是因为e=-e++;其实就是先算e=-e,得e等于-2,后自增1变为-1。

又如我的上上篇博客点击打开链接里写的第二种实现栈的代码里的压栈函数,其中有一句:   *(S->top++) = e;   其实就相当于*S->top=e; S->top++; 这两句,即先赋值后挪动栈顶 ,里面的括号不起任何作用。这才是先运算后自增的真正含义。

附百度百科运算符优先级一览表:



0 0
原创粉丝点击