使用typedef与define在定义指针类型时的区别:

直接通过代码来分析typedef和define的区别:

	#include <stdio.h>
	
	#define P1 int*                         //这里分别用define和typedef两个整型指针类型;
	typedef int* P2;

	int main (void)

	{
		int a = 1, b = 2;
		
		P1 p1, p2;                         //用define定义的,此时定义变量时相当于int *p1, p2;
		P2 p3, p4;                         //用typedef定义的,此时定义变量时相当于int *p3, *p3;
		
		p1 = &a, p2 = a;                   //此处若是p2 = &a的话,在编译时,编译器会提出警告。也就
		                                   //证明了p2是一个整型变量,而不是一个整型指针。
		p3 = &b, p4 = &b;
		
		printf ("This is the result of define: %d %d\n\n", p1, p2);
		printf ("This is the result of typedef: %d %d\n\n", p3, p4);
		
		return 0;
	}

用define定义的,定义变量时相当于int *p1, p2;define是一条预处理命令,语句是在预处理时执行的,所以后面也不用加 ‘;’,在预处理过程中就把P1替换int *。
用typedef定义的,定义变量时相当于int *p3, p3;typedef语句是在编译时执行的,将所有的P2替换成int
若是p2 = &a的话,在编译时,编译器会提出警告。也就证明了p2是一个整型变量,而不是一个整型指针。
(本人小白,若有不当之处,欢迎各位大佬指出!)
Hello World!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值