C语言笔记3--逗号运算符

逗号运算符将多个表达式连接起来,每一条表达式都执行,整个表达式的值为最后的表达式的值。
逗号运算符的优先级是最低的,比赋值运算符还低。
1.首先看下简单用法

#include<stdio.h>
#include<stdlib.h>
void main()
{
    int a=(1,2,3);
    printf("a=%d\n",a);
    system("pause");
}

打印结果为a=3;

//改变一下语句
int a=(1,2,3,4);

打印结果为a=4,也就是说无论前面有多少个逗号,a的值只跟最后的值有关
2.逗号运算符的高级用法,也是初学者经常搞混的地方,注意下面另个语句的区别。

#include<stdio.h>
#include<stdlib.h>
void main()
{
    int a;
    a=(a=3,6*3);
    printf("a=%d\n",a);
    system("pause");
}

打印结果为a=18;

//把语句改为下面的语句
a=a=3,6*3;
printf("a=%d\n",a);

打印结果为a=3;
两者的区别主要在:
第一条a的值为语句(a=3,6*3)的值,也就是最后的语句6*3的值,第二条a直接赋值为3,后面的6*3仅仅是一个常量18,并没有进行赋值。
3.再看看下面容易搞混的语句

#include<stdio.h>
#include<stdlib.h>
void main()
{
    int a,b;
    b=(a=3,a+=2,a+3);
    printf("a=%d,b=%d\n",a,b);
    system("pause");
}

打印结果为a=5,b=8;这条语句要注意最后的a+3并没有赋值给a。
最后总结注意的是:
1.逗号运算符和赋值运算符一起使用时容易造成的误区
2.逗号运算符的优先级是最低的
3.逗号运算符的每条语句都会执行

猜你喜欢

转载自blog.csdn.net/weixin_40850689/article/details/81905333