C语言中 定义一个int a[10]数组以及 指针组(*pre)[10],如何把a组所有的地址赋

 我来答
Yuqi_Tan

2019-06-15 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3712万
展开全部
一、你的题目不完整,先把题目补充完整,是不是下面这样(【】内是补充内容):
“C语言中 定义一个int a[10]数组以及 指针组(*pre)[10],如何把a组所有的地址赋【值给数组pre? 】”
如果不是,请楼主补充题目。
二、不管补充的内容对不对,题目前面的内容已经出现错误了!
因为用int (*pre) [10];定义的变量pre,并不是一个含有10个元素的指针数组,而是一个指向一维数组的指针,其本质是一个指针!所以原题目中的叙述“指针组(*pre)[10]”是错误的。
要想定义一个指针数组,应该用:int *pre[10];。注意他们的区别,对,多了一对小括号导致错误。
三、把原题目改为“C语言中 定义一个int a[10]数组以及 指针数组*pre[10],如何把a组所有的地址赋值给数组pre? ”,则所运用的语句是:
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int *pre[10],i;
for(i=0;i<10;i++)
pre[i]=&a[i];
}
如果有什么问题请留言。
追问
嗯,这是一个指向一维数组的指针,那么要怎么给这个指针赋值?
百度网友17df512
2019-06-14 · TA获得超过1595个赞
知道小有建树答主
回答量:245
采纳率:72%
帮助的人:35.3万
展开全部
从名字上听起来这个int (*p)[n]是个指针,那么肯定跟int *p[n]是有区别的

下面,先看看我的练习代码:

#include <stdio.h>

#include <iostream>

#include <string.h>

using namespace std;

#define LEN sizeof(a)/sizeof(int)

int main()

{

int a[]={1,2,3,4};

int (*p)[LEN];

p=&a;

printf("a:%d\n",a);

printf("&a:%d\n",&a);

int i;

for(i=0;i<LEN;i++)

printf("%d \t",*(*p+i));

return 0;

}

执行结果如下:



大家看,这个例子也是把数组a的元素依次打印出来,我有一个问题留给大家:

既然 a和&a的地址一样,为何只能p=&a;这样赋值,而不可以p=a呢?

答案:

 a代表一个整形的地址   &a 代表的是数组长度为4的整形的 首地址 虽然地址是同一个  ,但是数据类型不同,所以赋值会出错
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fastfs
2019-06-14 · TA获得超过1423个赞
知道大有可为答主
回答量:2659
采纳率:62%
帮助的人:877万
展开全部
应该是int*pre[10]
pre[0]=&a[0]
pre[1]=&a[1]
……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式