• 对逗号操作符的理解.


    逗号操作符是一组由逗号分隔的表达式,这些表达死从左向右计算.逗号表达式的结果是其最后边表达式的值。如果最后边的操作数是左值,则逗号表达式的值也是左值。此类表达式通常用于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

    按任意键退出.

  • 相关阅读:
    Air Raid HDU
    Strategic Game HDU
    Antenna Placement POJ
    Load Testing CodeForces
    Packmen CodeForces
    Codeforces Round #441 (Div. 2, by Moscow Team Olympiad)
    Codeforces Round #440 (Div. 2, based on Technocup 2018 Elimination Round 2)
    Dog Show CodeForces
    Sum of Nestings CodeForces
    Preparing for Merge Sort CodeForces
  • 原文地址:https://www.cnblogs.com/crazycodehzp/p/3344674.html
Copyright © 2020-2023  润新知