C++的*和&

C++的*和&


在c++中,当申明变量int *p 的时,表示p是一个储存地址的变量;比如int *p=0,表示p指向地址为00000000的地址单元。当申明指针p之后,再用*p表示p指向的储存空间的内容;&表示取变量的地址;

#include <iostream>
using namespace std;
int main(int argc, char** argv) {
	int a=123;
	//a的值和&a为a的地址;&a表示a在内存中的地址,也就是123在内存中的地址 
	cout<<"a: "<<a<<endl<<"a address  "<<&a<<endl;
	//指针p获取a的地址  此时p是一个指针,指向a所在的位置
	int *p=&a;
	//p获取到a值的地址  
	cout<<"p "<<p<<endl;
	//获取到a的值  声明p之后,在p之前添加*表示p指向内存的值
	cout<<"*p value "<<*p<<endl;
	//指针p的地址  同时p也是 一个变量,在内存中也有一个地址储存它,但其地址不是a的地址
	cout<<"&p address "<<&p<<endl;
	//通过指针获取到a地址  &p是一个内存地址,*&p表示&p指向地址内存空间的值,在这里表示a的地址
	cout<<"*&p  "<<*&p<<endl;
	//获取a的值  刚才我们已经知道*&p是a的地址,那么**&p就表示a的值
	cout<<"**&p  "<<**&p<<endl;
	return 0;
}

King逍灬遥博客

通过&运算可以知道p的地址为:0x6ffe30;

即在内存0019FF38储存的数据是0x6ffe3c;

 *&
a不存在0x6ffe3c
p1230x6ffe30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值