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;
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算