代码中的p=head;好像是指向指针的指针,为什么不把*p改为**p?
#include<stdio.h>structst{intnum;floatscore;structst*next;};voidmain(){structsta,b,c,...
#include<stdio.h>
struct st
{
int num; float score;
struct st *next;
};
void main()
{
struct st a,b,c,*head,*p;
a.num=10101; a.score=89.5;
b.num=10103; b.score=90.0;
c.num=10107; c.score=85.0;
head=&a;
a.next=&b;
b.next=NULL;
p=head;
do
{
printf("%ld %5.1f\n",p->num,p->score);
p=p->next;
}
while(p!=NULL);
} 展开
struct st
{
int num; float score;
struct st *next;
};
void main()
{
struct st a,b,c,*head,*p;
a.num=10101; a.score=89.5;
b.num=10103; b.score=90.0;
c.num=10107; c.score=85.0;
head=&a;
a.next=&b;
b.next=NULL;
p=head;
do
{
printf("%ld %5.1f\n",p->num,p->score);
p=p->next;
}
while(p!=NULL);
} 展开
1个回答
2015-04-19
展开全部
代码中的p=head是指针间的赋值,p不是指向指针的的二重指针(从struct st a,b,c,*head,*p;可以知道)
追问
为什么?能举个例子说明吗?
追答
这个程序中有head=&a;
a是结构类型变量,这一使用格式和原子类型的变量(整形变量等)一样,
取a的地址后,就可以用指针访问a中的成员,格式为”head->成员名“,如head->num、head->score、head->next
head=&a;(取变量地址)
和p=head;(指针赋值)
依次出现
就可以有p->num、p->next,指针p就可访问a中的成员。
使用指针最终的目的是访问某一结构类型变量或者对结构类型变量进行赋值等的操作
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询