c语言结构体指针
发布时间: 2022-01-18 14:24:30
‘壹’ c语言指针和结构体
楼主你好:
for(i=cnt;i>0;i--)
{/*P为临时结构体指针*/
p=(struct linklist *)malloc(sizeof(linklist));
scanf("%s%s%d",p->sno,p->sname,&p->sgrade);
p->next=ps->next;
ps->next=p;
}
你仔细看一下你的这段代码。
第一次循环的时候,p指向ps指向的地址,然后ps指向p,这样的结果是:ps--->p---->p->next
然后下一次循环,ps->next现在是p,你执行了“p->next=ps->next”那么p指向了p自己。。。而ps指向了p。在以后的循环中无法改变这一现象,从而造成了死循环,不知道你是不是能够明白,推荐你画一下图,画画就明白了。
还有最后的那个for循环,终止条件改为p=p->next,这个应该是粗心了吧?
看起来你是初学c,c中联表示比较难以理解的一部分,祝你好运,学业有成。
‘贰’ c语言结构体指针
error C2106: '=' : left operand must be l-value
这句的意思是等号左边必须是一个左值,也就是说等号左边要放一个能被修改的值
这样看来 pcg->name不能被修改 估计name是个数组,数组名是个常量,是不能被改变的
这样操作: strcpy(pcg->name,temp.qq);
热点内容