c - 在没有 '&' 的情况下分配时发出警告的数组指针的地址

标签 c arrays pointers

#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.Sint(*)[]R.H.S 也是 int(*)[]。因此没问题。

现在让我们检查一下

p_arr = arr

L.H.Sint(*)[]R.H.Sint[] 。 因此,警告为 assignment from incompatible pointer type

关于c - 在没有 '&' 的情况下分配时发出警告的数组指针的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25542791/

相关文章:

c++ - 如何将位图字体从 C header 格式转换为原始位

c - fopen 在 C 中返回无效参数

c - C中堆栈上数据的组织?

arrays - Angular 2 pipe - 计算对象数组的摘要

python - 如何在Python中规范化numpy数组

Java数组,int重置为0?

c - Malloc 分配的空间太少,但代码编译和运行时没有错误

c++ - 将指针传递给导致第二次调用使程序崩溃的函数

c++ - 在堆栈对象上保持指针

c - 如何在 C 结构中实现检索和更新