typedef的用法

今天上机写个链表的题被pta背刺,结果pta里面搞了一堆别名,本来C就忘得差不多了,今天就总结一下typedef的用法,然后顺便开个链表的复习(因为本人是主java,但健忘,做一下笔记),也让小伙伴们一劳永逸。

为基本数据类型定义新的类型名

系统默认的所有基本类型都可以利用 typedef 关键字来重新定义类型名

例如给int重新定义类型名

#include <stdio.h>
typedef  int Integer;
int main(){
	Integer a=0;
	printf("%d",a);
}

例如double重新定义类型名

#include <stdio.h>
typedef  double Integer;
int main(){
	Integer a=0.00000000000;
	printf("%.3f",a);
}

为结构体定义简洁的类型名称(重点)

这里就是博主今天被被刺的地方

抛出问题

例子如下。
其实大家应该都知道当我们用struct创建结构体后,每次创建对象都必须带struct,这样非常的不方便,所以这里我们就可以引入我们的正题,用typedef给这个结构体取别名。

#include <stdio.h>
struct node{
	int data;
	node* next;
};
int main(){
	struct node node1={1,NULL};
	struct node node2={2,NULL};
}

解决问题

#include <stdio.h>
struct node{
	int data;
	node* next;
};
typedef struct node list;
int main(){
	list node1={1,NULL};
	printf("%d",node1.data);
}

这里我们用list作为struct node的别名,这样就可以省力。

剖析案例

typedef struct Node* PtrToNode;
struct Node {
    ElementType Data; /* 存储结点数据 */
    PtrToNode   Next; /* 指向下一个结点的指针 */
};
typedef PtrToNode List; /* 定义单链表类型 */

这里其实就是ptrTonode是Node* 的别名,而list是ptrTonode的别名(本人觉得这里用一个list去做Node*的别名就够了,反正不知道为什么这么脑瘫。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值