C语言 把结构体数组的地址赋给指针

定义一个结构体数组structStudent{intnum;charname[8];floatscore;};Students[10];定义一个结构体指针Student*... 定义一个结构体数组
struct Student
{int num;
char name[8];
float score;
};
Student s[10];
定义一个结构体指针 Student *p1;怎么用指针接收结构体的地址
应该怎样赋值
展开
 我来答
乐跑小子
2016-01-12 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:7%
帮助的人:4454万
展开全部
1、结构体指针其实是一个指针,它存储的是指向某个结构体的“地址”,所以结构体指针数组存储的其实是指向一组结构体的“地址”数组,它本身并不包含结构体的具体内容(没有被分配内存)
2、所以当用到他们时,要么重定向,比如:
d=&b; //让d指向b,d存储的是b的地址,这样就能通过d来调用b了
要么用malloc为他们分配内存:
d=(struct h *)malloc(sizeof(struct h));
这样d就指向系统为其分配的一块内存,其内容就是struct h中的东西
zyh1141298056
2012-03-25 · TA获得超过1308个赞
知道小有建树答主
回答量:500
采纳率:100%
帮助的人:588万
展开全部
如果是两个结构体指针类型的变量的话,可以直接赋值,例如:Student *p,*q;它们之间可以直接赋值:p=q或者q=p;但是这个赋值的时候,"="左边的指针一定要是没有被分配过空间的。如果想将结构体变量a的地址给指针p1,可以这样p1=&a,同样,p1一定要是没有被分配过空间的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zsx10110
2012-03-25 · TA获得超过8871个赞
知道大有可为答主
回答量:2369
采纳率:66%
帮助的人:3056万
展开全部
Student *p1 = &s[0]; 就可以获得数组的第一个地址了
访问第二个 就让p1++;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
w283398070
2012-03-25 · TA获得超过120个赞
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:193万
展开全部
p1 = s
更多追问追答
追问
我试了 怎么不可以 
我实在函数中定义的
Student *findNum(Student s[],int n,long x)
{
Student *p1[]=&s;
}

怎么办
追答
你写错  
Student *p1 = s
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式