这是我的代码:
int a1[][3]={{1,2,3,4,5,6},{4,5,6,5}};
int (*q)[3];
q=a1;
q
是指向3个整数数组的指针。但a1
不符合q
的类型。然而,任务有效,没有错误。
任何人都可以解释原因吗?
答案 0 :(得分:4)
这些类型符合要求。 a1
是一个长度为3的int数组。 q
是指向长度为3的整数数组的指针。在大多数情况下,数组会衰减到指针;这是其中之一,所以一切都很好!
答案 1 :(得分:2)
请参阅C faq on arrays and pointers。具体而言,Question 6.2。
答案 2 :(得分:1)
您正在将a1
的第一个元素的地址指定给指针q
。
答案 3 :(得分:1)