C++中typedef和using的使用

typedef和 using都是给类型起别名,在使用的过程中有什么需要注意的地方?

  • typedef和using都是给类型起别名,如果给不带*的变量起别名的话,很容易理解
  • typedef int pInt;和using pInt = int;时会是什么样
typedef int* pInt;
using pInt = int*;

int main()
{
	int a = 10;
	int b = 10;
	//1、const int * pA = &a; 
	//2、int * const pA = &a;
	//不外乎有上面两种情况,
	//如果是第一种,那么不可以通过pA修改变量b的值,并且pA可以指向&b
	//如果是第二种,那么可以通过pA去修改变量a的值,并且pA不能指向&b
	const pInt pA = &a; //实测可以通过编译,
	*pA = 100;
	cout << a << endl;

	pA = &b;//实测不能通过编译

	return 0;
}

通过测试,我们可以看到当有*****存在时const修饰typedef或者using重命名的类型时,const只修饰的其实是一个常量指针。

注意:很多人在这个地方可能会认为是上面所说的第一种,做简单的文本替换,这种理解是错误的,因为const 修饰的对象是pA,相当于pInt const pA 这样就很好理解了

欢迎关注问我团队公众号:

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值