C语言逗号运算符和逗号表达式
2015-12-19 10:08
267 查看
C语言逗号运算符和逗号表达式
在C语言中,逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接起来组成一个表达式, 称为逗号表达式。其一般形式为:表达式1,表达式2。
其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。
1. 举例
例1
main() { int a=2, b=4, c=6, x, y; y=(x=a+b),(b+c); printf("y=%d, x=%d", y, x); }
本例中,y等于整个逗号表达式的值,也就是表达式2的值,x是第一个表达式的值。
例2
int main(int argc, char * argv[]) { int shus[3][2] = {(0,1), (2,3), (4,5)}; printf("%d\n", shus[0][0]); return 0; }
运行结果为1.
本例中,在初始化数组时使用了括号,使得
(0,1)被解释为逗号表达式,所以逗号后面的1代表了整个表达式的值。
实际上,内存中数组被初始化为了
{1, 3, 5, 0, 0, 0}。
2. 扩展
逗号表达式一般形式中的表达式1和表达式2 也可以又是逗号表达式。例如:
表达式1,(表达式2,表达式3),
形成了嵌套情形。因此可以把逗号表达式扩展为以下形式:
表达式1,表达式2,…表达式n,
整个逗号表达式的值等于表达式n的值。
3. 使用
并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。
在「MISRA C-2004」中要求不要使用逗号表达式,摘录如下:
规则12.10(强制): 不要使用逗号运算符。
使用逗号运算符通常不利于代码的可读性,可以使用其他方法达到相同的效果。
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法