C/C++语言中 指针复制与指针赋值的作用

int *a,*b;//声明两个指针变量

a=b; //指针复制:此语句使a指向的地址与b指向的地址相同,它们都指向同一内存区域。

*a=*b ; //指针赋值:此语句使a指向的地址(内存位置)的内容与b指向地址(内存位置)的内容相同,但a与b指向的地址不一定相同

&a=&b ; //这个一般比较少用,使指针a本身的内容与指针b本身的内容相同

总结指针的用处:用于指向与其类型相同的地址,重点在于指向地址,而不在于指针本身的内容(故&a=&b一般仅作理解,比较少用)

一句话:指针a是一个地址, *a是它指向的内容,&a是它本身的内容

测试代码:

void CtestPtrDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码

	int* a = new int;
	int* b = new int;
	
   delele a;
   a=NULL;
   
	a = b;

	*a = 4;

	CString strTip;
	strTip.Format(_T("b = %d"),b);
	AfxMessageBox(strTip);
}

上面代码含义:创建两个内存地址a、b,地址不同,a=b则代表a被抹去了,地址以及内容全成了b,此时只存在b,但复制之前需要将a清理为空。
显示的是b的地址而非b的值,如果想要b的值,则用strTip.Format(_T(“b = %d”),*b); *代表取值,&代表引用地址
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欧特克_Glodon

很高兴能帮助到您!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值