这是c的东西了---
1.运算顺序是从左向右
2.整体的值是最后一项的值譬如:
int k = 1;
int j = (k + 10, k); //这就有用了
1.运算顺序是从左向右
2.整体的值是最后一项的值譬如:
int k = 1;
int j = (k + 10, k); //这就有用了
解决方案 »
- CFile读出数据出现乱码
- 使用VC多年了,今天发现VC一个完全没接触过的语法,汗颜...!谁能帮忙解释一下
- 为何我不能定义自己的类型!难道VS2005不允许么?
- 如何在 char[4]中存放 32位的 int 型整数?
- 如何将一个vc的程序转成c#的托管程序?具体细节见内。顶着有分
- 怎样通过调用API函数CreateMutex,让我的应用程序只执行一次?
- 一个MDI的问题,大侠进来帮小妹一把,谢谢############################################
- CFile::Abort ,请问在VC中怎么样创建CFile这个类,然后怎么去验证Abort
- C++实现桌面共享?
- 如何在WebBrowser打开的网页链接后直接在WebBrowser打开而不是新弹出一个IE窗口来打开
- 请教哪位老师能详细讲解下DispatchMessage函数
- 学习visual c++ 2005看哪本书比较好?
逗号运算符的作用是将若干表达式连接起来。它的优先级别在所有运算符中是最低的,结合方向是"自左至右"的。
如:3*3,4*4
二、逗号表达式
逗号表达式的一般形式是:表达式1,表达式2,表达式3……表达式n
逗号表达式的求解过程是:先计算表达式1的值,再计算表达式2的值,……一直计算到表达式n的值。最后整个逗号表达式的值是表达式n的值。
看下面几个例子:
x=8*2,x*4 /*整个表达式的值为64,x的值为16*/
(x=8*2,x*4),x*2 /*整个表达式的值为128,x的值为16*/
x=(z=5,5*2) /*整个表达式为赋值表达式,它的值为10,z的值为5*/
x=z=5,5*2 /*整个表达式为逗号表达式,它的值为10,x和z的值都为5*/
逗号表达式用的地方不太多,一般情况是在给循环变量赋初值时才用得到。所以程序中并不是所有的逗号都要看成逗号运算符,尤其是在函数调用时,各个参数是用逗号隔开的,这时逗号就不是逗号运算符。
如:printf("%d,%d,%d",x,y,z);
int k = 1;
int j = (k + 10, k); //这就有用了有用吗? j = 1
int j = (++k2 , k2); //这就有用了