数组指针可以这样用吗?
#include<stdio.h>#include<stdlib.h>
void main()
{
//数组指针的用法,用处。
int b={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int (*p); //该语句是定义一个数组指针,指针步长为4个int即16位。
//int *p2=b;
p=b;
int i=0;
while(i<16)
{
printf("%d\t",(*p));
//printf("%d\t",*p2++);
i++;
}
}
看到一篇博客,将指向二维数组的指针用来指向一维数组,博客上写的能正常输出,而我这里显示error: cannot convert 'int ' to 'int (*)' in assignment| 数组指针应该指向的是一个二维数组吧,要不然如何知道另一维的长度呢
你的编译器真的很严格哦。。
printf("%d\t",(*p)); // 原则上来说这里对p解了一次, 那么他的步长就只有一个int的大小,
为什么报错,我觉得可能是 int * 和 int ** 的差别吧。 风过无痕丶 发表于 2018-5-15 10:29
你的编译器真的很严格哦。。
为什么报错,我觉得可能是 int * 和 int ** 的差别吧。
我认为他使用的是c++环境
人造人 发表于 2018-5-15 13:19
我认为他使用的是c++环境
大佬说得在理 c++环境也不行
error: assigning to 'int (*)' from incompatible type 'int '
直接用指针也可以,不用数组指针 把文件后缀名cpp改成c就行了,改成c就只会在warning中提醒,不会再error中提醒,就能正常输出了
页:
[1]