一网打尽逗号运算符所有坑点

目录

1.应用1:作为分隔符使用

补充一个坑点 

2.应用2,便于记忆变量值的互换 


1.应用1:作为分隔符使用

#include <stdio.h>
int main() {
    int a = 1, b = 2, c = 3;//逗号用于分隔变量
    a++;
    ++b;
    --c; 
//如果直接输出 a=2,b=3,c=2 这里因为自增自减均为独立语句,
// 没有其他运算符和赋值符号的参与,
// 所以前缀和后缀自增,前缀自减和后缀自减效果一样 
// 下面我们可以验证一下
    printf("a = %d b = %d c = %d\n", a, b, c);
    return 0;
}

当然
a++;
++b;
--c; 
写成
a++,++b,--c;
效果一样 

补充一个坑点 

#include <stdio.h>
int main() {
    int a = 1, b = 2, c = 3;//逗号用于分隔变量
    printf("%d\n", (a++, ++b, --c));//这样就只会输出最后一个--c的值,也就是2
    return 0;
}

2.应用2,便于记忆变量值的互换 

#include <stdio.h>
int main() {
    int a = 1, b = 2, r;
    r = a;//把a的值1转移给r 现在r=1 a=1
    a = b;//把b的值2转移给a 现在a=2 b=2
    b = r;//把r的值1转移给b 现在b=1 r=1
    printf("a = %d b = %d r = %d\n", a, b, r);

    return 0;
}

但是这样下次在使用这种方法进行变量转换时,容易想不起来

因此可以利用逗号运算符,写成下面这样

#include <stdio.h>
int main() {
    int a = 1, b = 2, r;
    r = a, a = b, b = r; //非常的对称,容易记住
    printf("a = %d b = %d r = %d\n", a, b, r);

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值