有如下代码:
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
printf(“%d”, arr[2]);
printf(“%d”, 2[arr]);
为什么2[arr]也能编译通过,难道这不是错误的语法么?
一个数组告诉你的只有,数组长度跟数组起始地址,然后其他操作好像都是根据指针完成的arr[2] = * (arr + 2) = 2[arr] ,是可以用的,但是不建议你这么使用。
有如下代码:
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
printf(“%d”, arr[2]);
printf(“%d”, 2[arr]);
为什么2[arr]也能编译通过,难道这不是错误的语法么?
一个数组告诉你的只有,数组长度跟数组起始地址,然后其他操作好像都是根据指针完成的arr[2] = * (arr + 2) = 2[arr] ,是可以用的,但是不建议你这么使用。