#define 和 typedef

看到一道让人费解的问题 到底谁是指针变量

#define INT_PTR int*
typedef int* int_ptr;
INT_PTR a, b;  //宏定义直接做替换 等价于 int *a,b;
int_ptr c, d;  //typedef就和定义变量一样 只是给一种类型起一个名字 int *c,*d;

宏定义做的事只有替换 它把INT_PTR代替成了int*
那拿下去第三行 就是int* a,b 那b自然就只是个int类型的变量(*是单目操作符和a结合了就没b事了)
在这里插入图片描述

typedef做的是把int*类型换了个名字叫int_ptr ,但它并不是简单的替换,它与定义正常数据类型时无异,所以第四行的c、d都是指针变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值