对逗号操作符的理解.

逗号操作符是一组由逗号分隔的表达式,这些表达死从左向右计算.逗号表达式的结果是其最后边表达式的值。如果最后边的操作数是左值,则逗号表达式的值也是左值。此类表达式通常用于for循环:

int cnt=iec.size();

for(vector<int>::size_type ix=0;ix!=ivec.size();++ix,--cnt)

ivec[ix]=cnt;

上述的for语句在循环表达式中使ix自增1而cnt自减1。每次循环均要修改ix和cnt的值。当检验ix的条件判断成立时,程序将下一个元素重新设置为cnt的当前值.

以上摘自书146面..

我的理解

int a(){

return 1,2,3;

}

那么其他地方调用这个方法返回值是最右边的那个3.

又如:

// container.cpp : 定义控制台应用程序的入口点。 //

#include "stdafx.h"

#include<iostream>

#include<string>

#include<stdexcept>

#include<vector>

using namespace std;

int& a(int &b){ return 1,2,b; }

int _tmain(int argc, _TCHAR* argv[])

{  int as =3;

 a(as)=10;//这里返回了逗号最后边的引用b,所以可以赋值,相当于给as赋值为10

 cout<<"as:"<<as<<endl;  

cout<<a(as)<<endl;//同样,这里就是返回的as的值

 return 0; }

控制台输出:

as:10

10

按任意键退出.

原文地址:https://www.cnblogs.com/crazycodehzp/p/3344674.html