【发布时间】:2023-04-03 21:57:01
【问题描述】:
我想问如何摆脱不兼容指针类型赋值的警告。
这是我使用的代码:
#include<stdio.h>
int main()
{
int a2d[2][2]={{1,2},{3,4}};
int **pa;
pa=a2d;
}
得到这个:
7:5: warning: assignment from incompatible pointer type pa=a2d;
【问题讨论】:
-
数组不是指针。指针不是数组。
-
平心而论,一维数组和指针是可互操作的。但这对于 2 维或更多维数组不再适用
-
int**类型的指针必须指向int*类型的对象。在您的程序中没有int*类型的对象。a2d是一个int[2][2]类型的对象,由两个int[2]类型的对象组成,每个对象都由两个int类型的对象组成。您可以从其中的每一个中派生指针值,但没有int*指针对象,除非您定义它们。