none
C语言中二维数组赋值问题求解 RRS feed

  • 问题

  • C/C++ code
    int a[3][2]={(0,1),(2,3),(4,5)}; // 该方式改如何解释? int b[3][2]={{0,1},{2,3},{4,5}}; //该方式是正确的赋值方式 遇到这么一个题目: int main(int argc, char* argv[]) { int a[3][2]={(0,1),(2,3),(4,5)}; int b[3][2]={{0,1},{2,3},{4,5}}; int *p; p=a[0]; printf("%d \n",p[0]); return 0; }


    求打印出来的结果!
    能否解释下这里面 int a[3][2]={(0,1),(2,3),(4,5)};
    小括号的意义!!
    2011年10月28日 3:16

答案

  • 相当于  a[3][2]={1,3,5,0,0,0};

     逗号表达式的形式如下:


    表达式1,表达式2,表达式3,...... ,表达式n 逗号表达式的要领: (1) 逗号表达式的运算过程为:从左往右逐个计算表达式。 (2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。

    (3) 逗号运算符的优先级别在所有运算符中最低。


    • 已建议为答案 Helen Zhao 2011年11月3日 1:08
    • 已标记为答案 Helen Zhao 2011年11月7日 2:54
    2011年11月2日 5:31

全部回复

  •  打印结果是 1。

    此时 a[0][0] = (0, 1) .

    这是逗号表达式。

    2011年10月28日 4:56
  • 相当于  a[3][2]={1,3,5,0,0,0};

     逗号表达式的形式如下:


    表达式1,表达式2,表达式3,...... ,表达式n 逗号表达式的要领: (1) 逗号表达式的运算过程为:从左往右逐个计算表达式。 (2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。

    (3) 逗号运算符的优先级别在所有运算符中最低。


    • 已建议为答案 Helen Zhao 2011年11月3日 1:08
    • 已标记为答案 Helen Zhao 2011年11月7日 2:54
    2011年11月2日 5:31