
C语言中 定义一个int a[10]数组以及 指针组(*pre)[10],如何把a组所有的地址赋
3个回答
展开全部
一、你的题目不完整,先把题目补充完整,是不是下面这样(【】内是补充内容):
“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];
}
如果有什么问题请留言。
“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];
}
如果有什么问题请留言。
追问
嗯,这是一个指向一维数组的指针,那么要怎么给这个指针赋值?
展开全部
从名字上听起来这个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的整形的 首地址 虽然地址是同一个 ,但是数据类型不同,所以赋值会出错
下面,先看看我的练习代码:
#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的整形的 首地址 虽然地址是同一个 ,但是数据类型不同,所以赋值会出错
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是int*pre[10]
pre[0]=&a[0]
pre[1]=&a[1]
……
pre[0]=&a[0]
pre[1]=&a[1]
……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |