逗号表达式与 “++“ , “--“的 “爱恨情仇”~~~

简介: 逗号表达式与 “++“ , “--“的 “爱恨情仇”~~~

逗号表达式,++,--,是什么?

逗号表达式:


      简单来说就是,逗号表达式是C语言提供一种特殊的运算符——逗号运算符。它的优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。那么可能有同学就会这么想,但如果这样子的话,是不是我直接就可以看最右边的式子,然后算出它的表达式结果不就好了吗??


    所以就与今天的主题,++和--联系起来了!!!!!


“ ++ ” 和 “ -- ”  操作符:


        i++  是先赋值再运算+1;++i  是先运算+1再赋值;


         i- -   是先赋值再运算-1; - - i  是先运算-1再赋值;


详细步骤

一、从简单实例理解

i ++

 

 ++ i

同理可得,--i和i--是一样的操作!!

二、从复合实例理解

     在理解和差不多摸清自增和自减以后,让我们升级难度,来结合逗号表达式进行更深度的理解和加深印象!!  

a++ && ++b && d++
前置++,先使用,再+1,所以此时a++的值为1,但是a本身在使用过后还会加1,所以,此时a=2.
后置++,先+1,再使用,所以此时++b的值为3,b会加1,所以b的值为3.
同理可得!!

 

#include<stdio.h>
int main()
{
a=5;
c=++a;
//前置++,先++,再使用;所以c=6,此时a=6;
b=++c,c++,++a,a++;
//逗号表达式从左往右算,观察并计算此时a,b,c的值。
//++c,前置,所以此时c=7;
//c++,后置,所以此时(c++)整体为7,c=8;
//++a,前置,所以此时a=7;
//a++,后置,(a++)为7,但是a=8;
//b的值为,逗号表达式的最右边,b=7。
b+= a++ + c;
//+=和+的优先级,+大于+=,所以(a++)为8;但a=9;
//a++ + c值为8+8=16;
//b+=即b=b+16
//      =7+16
//      =23
printf("a= %d b=%d c=%d",a,b,c);
                         =9 =23 = 8
return 0; 
}

所以,学到这里,肯定恍然大悟吧!!

赶快趁热打铁,多多加深印象吧!!!


目录
相关文章
|
7月前
|
算法 搜索推荐 程序员
C语言十九练——养兔子
C语言十九练——养兔子
76 0
|
7月前
|
C语言
c语言编程练习题:7-39 龟兔赛跑
c语言编程练习题:7-39 龟兔赛跑
158 0
|
7月前
|
C语言
每天一道C语言编程练习(5):尼科彻斯定理
每天一道C语言编程练习(5):尼科彻斯定理
55 0
|
7月前
每日一题(珠玑妙算,两数之和)
每日一题(珠玑妙算,两数之和)
63 1
【洛谷算法题】B2029-大象喝水【入门1顺序结构】
【洛谷算法题】B2029-大象喝水【入门1顺序结构】
|
C语言
【C语言—零基础第九课】函数中的爱恨情仇
我们举个例子,你现在是老板你要求你的秘书去完成一项任务你可以给他说让他去做某一项任务,也可以不给他说让他去做某一项任务(暗示他)当然你得是老板。只要你是老板你就可以无限次的让秘书去做某一项任务,并且他没有怨言。
68 0
C++——“甜蜜的谎言”之循环嵌套
C++——“甜蜜的谎言”之循环嵌套
|
算法 C++ Python
【每日算法Day 68】脑筋急转弯:只要一行代码,但你会证吗?
【每日算法Day 68】脑筋急转弯:只要一行代码,但你会证吗?
118 0
【C语言每日一题】验证尼科彻斯定理
✨✨ 题目:验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。 例如: 1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19 输入一个正整数m(m≤100),将m的立方写成m个连续奇数之和的形式输出。 注意:本题含有多组输入数据。 数据范围:1≤m≤100 链接: 题目链接
|
C++
【寒假每日一题】AcWing 4728. 乘方
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
150 0