C语言结构体细节问题简单总结

本文详细介绍了C语言中结构体与指针的使用,包括普通结构体、指针结构体的定义与数据访问方式。通过具体代码示例,阐述了typedef在结构体类型声明中的应用,以及如何通过指针访问结构体成员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

复习回顾:内容包括定义普通结构体类型、指针结构体类型、typedef使用、指针类型结构体访问数据域方式。

            对结构体中一些细节问题进行梳理,直接上代码。 

#include<stdio.h>
#include<malloc.h>

/*
 *Node是定义结构体取的名字,用时需要写成 struct Node name;
 *Node1,*Node2是Node结构体的其他名字,相当于struct Node的作用 
 *Node1定义指针型结构体时:Node1 *p; *Node2定义指针型结构体时:Node2 p;他们作用一样。 
*/
typedef struct Node{
	int data;
	struct Node *next;
}Node1,*Node2;



int main()
{
	printf("node1 node3普通类型,node2 node4指针类型\n");
	struct Node node3; //1***传统方式定义一个结构体 
	node3.data=4;
	printf("普通类型node3.data:%d\n",node3.data);//普通类型只能通过 .来访问数据 
	Node1 node1; //2***使用typedef命名的标识定义一个结构体 
	Node1 *node2; //3***使用typedef命名的标识定义一个结构体指针 
	Node2 node4; //4***使用typedef命名的指针标识定义一个结构体指针 
	node2 = (Node1 *)malloc(sizeof(Node1));
	node4 = (Node2)malloc(sizeof(Node2));
	node4->data=6;
	printf("指针类型node4->data:%d\n",node2->data); 
	node1.data=2;//普通结构体类型只能通过.的方式访问结构体数据。
	node1.next=node2;
	printf("普通类型node1.data:%d\n",node2->data); 
	node2->data=3;  //指针类型的结构体变量,可以使用 -> 的方式访问数据,不能直接使用 . 的方式直接访问
	printf("指针类型node2->data:%d\n",node2->data); 
	(*node2).data=4; //指针类型的结构体变量,可以使用 (*node2). 的方式访问数据
	printf("指针类型(*node2).data:%d\n",node2->data); 
	system("pause");
	return 0;
} 

结果如下: 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值