why this code can run ? double a[3]; a[1,1]=1;

后端 未结 3 1517
攒了一身酷
攒了一身酷 2021-01-29 04:38
int main()
{
    double a[3];  
    a[1,1]=1;
}

It passes the vs2013 compiler, and it is not 2D array.

3条回答
  •  無奈伤痛
    2021-01-29 04:44

    In the expression inside square brackets there is so-called comma operator.

    a[1,1]=1;
    

    Its value is the value of the last subexpression.

    So this statement is equivalent to

    a[1]=1;
    

    This syntax as

    a[1,1]=1;
    

    is also valid in C# but it sets an element of a two-dimensional array.

    In C/C++ each index of a multidimensional array shall be enclosed in separate square brackets.

    Here is a more interesting example with the comma operator

    int main()
    {
        double a[3];  
        size_t i = 0;  
        a[i++, i++]=1;
    }
    

    It is also equivalent to

        a[1]=1;
    

提交回复
热议问题