C语言:结构体、指针、单链表

本文详细讲解了在C语言中,如何通过指针访问结构体的成员变量,特别是结构体链表中->操作符的使用。通过示例代码展示了.lnode1.data和lnode1.next->data的区别,以及指针变量如lhead->data和lhead->next->data的访问方式,强调了->在指针访问结构体成员时的关键作用。
摘要由CSDN通过智能技术生成

C语言指针详解
结构体访问成员变量时->和.的区别

#include <stdio.h>

int main(){
	struct LNode{//结点,每个结点是一个LNode类型的数据
		int data;//数据域
		struct LNode* next;//指针域,该指针的返回值类型是struct LNode* ,该指针指向的是一个struct LNode的元素(即一个结点),该指针存放的是指向的元素得分内存地址
	};
	struct LNode lnode1;//结点1
	struct LNode lnode2;//结点2
	lnode1.data = 10;
	lnode2.data = 200;
	lnode1.next = &lnode2;//结点1的指针域指向结点2
	printf("%d\n",lnode1.next->data);//打印的是lnode1.next->data,首先lnode1.next是结点1的指针域,返回值是一个struct LNode*类型的指针,该指针指向lnode2,那么lnode1.next->data就是lnode2的数据域
	/**
	 * 知识点:->y与.的区别:
	 * 						.用于结点访问成员变量;
	 * 						->用于指向结点的指针访问该结点的成员变量;
	 **/
	
	struct LNode* lhead;//指针,就是一个指针而已
	lhead = &lnode1;//给指针lhead赋值结点lnode1的内存地址,所以lhead目前是一个指向结点lnode1的指针
	printf("%d\n",lhead);//打印结点lnode1的内存地址
	printf("%d\n",&lnode1);//打印结点lnode1的内存地址	
	printf("%d\n",lhead->data);//打印结点lnode1的数据域
	printf("%d\n",lhead->next->data);//打印结点lnode2的数据域,其中lhead是一个指向lnode1的指针,lhead->next返回值是结点lnode1的指针域,指向结点lnode2,lhead->next->data是结点lnode2的数据域
	
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姓蔡小朋友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值