上周实验室考核考到了这么一道题
int main()
{
int a[3][2] = { (0, 1 ), ( 2, 3 ), (4, 5 ) };
int *p;
p = a[0];
printf("%d\n", p[0]);
system("pause");
return 0;
}
输出答案为____.
考核的时候没注意到数组赋初值的时候里头是小括号,导致我做错了,当时看到错了人都傻了,才发现把很基础的逗号表达式给忘记了。
“表达式1,表达式2,……,表达式n”逗号表达式的值为表达式n的值。逗号运算符的结合方向为“从左至右”,运算级别是所有运算符中最低的一种。
所以一开始赋初值相当于a【3】【2】={1,3,5};
所以输出的应该是1。