美文网首页
C语言自增自减运算辨析

C语言自增自减运算辨析

作者: 瑝琦 | 来源:发表于2019-04-04 18:53 被阅读0次

    c语言中,自增(++)和自减(--)运算是很有c语言“感觉”的一种运算符,但是在实际编写中,尤其对初学者或者很久没接触它的,会对它的原理和运算结果产生混淆,接下来做详细辨析。

    自增运算(++)

    语法为:a++,其结果与:a = a + 1 一样,也和:a += 1 一样,作用很明显,方便阅读,减小代码量。例如下面的例子,就能看出明显的效果了:

    ((3+a)*sqrt(3)/(a%2))=((3+a)*sqrt(3)/(a%2))+1;
    
    /*简化后*/
    ((3+a)*sqrt(3)/(a%2))++;
    
    辨析

    自增也可以表示为 ++a它们都能把a 的值加 1,但是两个表达式的值却不同,用一个例子说明:

    #include<stdio.h>
    int main()
    {
        int a = 1, b = 1, a2, b2;
        a2 = a++;
        b2 = ++b;
        printf("a = %d, b = %d, a2 = %d, b2 = %d", a, b, a2, b2);
    }
    

    输出结果为:

    a = 2, b = 2, a2 = 1, b2 = 2
    

    其实,a++ 的值为 a 本身,++a 的值为 a+1 后的值。

    也可以按教科书那种记:

    b = a++ 是先赋值后运算,即先 b=a,然后 a++
    b = ++a 是先运算后赋值,即先 ++a,然后 ++a

    自减运算

    自减运算原理和辨析与上面自增运算相似,a-- 等于 a = a -1 ,表达式 a-- 的值为 a ,表达式 --a 的值为 a-1

    相关文章

      网友评论

          本文标题:C语言自增自减运算辨析

          本文链接:https://www.haomeiwen.com/subject/xpwqiqtx.html