C语言逗号运算符(,)
逗号运算符是二元运算符:
逗号运算符确保操作数被顺序地处理:先计算左边的操作数,再计算右边的操作数。右操作数的类型和值作为整个表达式的结果。左操作数只是为了副作用需要而被计算,它其值会被丢弃。在计算完左操作数之后,存在一个序列点,例如:
在上述表达式中,在 sqrt()函数被调用之前,赋值运算会首先发生。整个表达式的值是此函数的返回值。
逗号运算符的优先级是所有运算符中最低的。因此,前述例子中的表达式 x=2.7 不需要括号。然而,如果希望逗号运算的结果用于另一个赋值运算中,就需要使用括号:
上述语句会把 5.4 的平方根赋值给 y。
在初始化列表或函数参数列表中的逗号是列表元素的分隔符,它不是逗号运算符。在这些地方,也可以使用逗号运算符,但必须使用括号:
这个语句等效于前面例子的语句。逗号运算符允许将多个表达式组合成为一个表达式。这个特点使得它适用于在 for 循环头部初始化或递增多个变量,如下例所示:
表达式1 , 表达式2
逗号运算符确保操作数被顺序地处理:先计算左边的操作数,再计算右边的操作数。右操作数的类型和值作为整个表达式的结果。左操作数只是为了副作用需要而被计算,它其值会被丢弃。在计算完左操作数之后,存在一个序列点,例如:
x = 2.7, sqrt( 2*x )
在上述表达式中,在 sqrt()函数被调用之前,赋值运算会首先发生。整个表达式的值是此函数的返回值。
逗号运算符的优先级是所有运算符中最低的。因此,前述例子中的表达式 x=2.7 不需要括号。然而,如果希望逗号运算的结果用于另一个赋值运算中,就需要使用括号:
y = ( x = 2.7, sqrt( 2*x ));
上述语句会把 5.4 的平方根赋值给 y。
在初始化列表或函数参数列表中的逗号是列表元素的分隔符,它不是逗号运算符。在这些地方,也可以使用逗号运算符,但必须使用括号:
y = sqrt( (x=2.7, 2*x) );
这个语句等效于前面例子的语句。逗号运算符允许将多个表达式组合成为一个表达式。这个特点使得它适用于在 for 循环头部初始化或递增多个变量,如下例所示:
int i; float fArray[10], val; for ( i=0, val=0.25; i < 10; ++i, val *= 2.0 ) fArray[i] = val;
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频