#include<stdio.h>
int main()
{
int (*p_arr)[10];
int (*ptr)[10];
int arr[10] = {1,2,3,4,5,6,7,8,9,0};
ptr = &arr;
p_arr = arr;
}
编译时报错
warning: assignment from incompatible pointer type [enabled by default]
为什么仅使用数组名称会给出此警告,因为数组名称和数组地址应该相同?
最佳答案
当你说
ptr = &arr;
L.H.S 是 int(*)[]
而 R.H.S 也是 int(*)[]
。因此没问题。
现在让我们检查一下
p_arr = arr
L.H.S 是 int(*)[]
而 R.H.S 是 int[]
。
因此,警告为 assignment from incompatible pointer type
关于c - 在没有 '&' 的情况下分配时发出警告的数组指针的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25542791/