(L1).data,L1->data和L1区别?struct LNode *L1?
void list_headinsert(linklist &L1)
{
linklist s;
int x;
L1=(linklist)malloc(sizeof(LNode));
panduan1(L1);//判断头结是否分配内存了,把(*L1).next中的地址改为null。
printf("%d\n",L1->next);//改为null了
printf("%d\n",L1->data);//改为null了
scanf("%d",&x);
while(x!=999)
{
s=(linklist)malloc(sizeof(LNode));
s->data=x;
s->next=L1->next;
L1->next=s;
scanf("%d",&x);
}
printf("%d\n",L1->data);//改为null了
printf("%d\n",L1);//改为null了
printf("%d\n\n",L1->next);//改为null了
return;
}
int main()
{
linklist L1,L2;
list_headinsert(L1);
list_tailinsert(L2);
}
问题是: L1和L1->data的结果不一样,L1是解引用L1中存放的地址所对应的一块结构体空间的首地址,即(L1).data的内容,和L1->data是一个意思,应该值也是一样的才对。但是我这边结果不一样,不知道为什么,是我理解错了嘛。
(*L1).data,L1->data和*L1区别?struct LNode *L1?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- programing菜鸟 2021-07-10 06:40关注
前两个是一样的。实际上你的最后一个问题还是有点意思的。int* p = 1;这里星号p表示什么呢?意思是你可以拿到int的字节大小的数据,也就是4个字节的数据。那么再来看看星号Li,这会怎么办呢?答案就是拿到sizeof(LNodede)字节大小的数据,而Li->data只是看到sizeof(int)字节大小的数据而已。这自然不一样。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
- ¥15 找一位技术过硬的游戏pj程序员
- ¥15 matlab生成电测深三层曲线模型代码
- ¥50 随机森林与房贷信用风险模型
- ¥50 buildozer打包kivy app失败
- ¥30 在vs2022里运行python代码
- ¥15 不同尺寸货物如何寻找合适的包装箱型谱
- ¥15 求解 yolo算法问题
- ¥15 虚拟机打包apk出现错误
- ¥15 用visual studi code完成html页面