指针变量定义赋值

阅读量: 146 编辑

一、指针变量定义

int *p; //定义指针变量p,存放的数据是整数类型的地址

二、指针变量赋值

int b = 100;
int *p;	//定义指针变量p
p = &b;	//赋值(b的地址)给指针变量p

cout << p << endl; 	//指针变量p的值是地址 0x6ffe14(也就是b的地址) 

& 是取地址符。

三、指针变量多次赋值

int b = 100;
int *p;	
p = &b;	

int c = 200;
p = &c;	//赋值(c的地址)给指针变量p

四、解引用

#include <iostream>
using namespace std;

int main(){
	int b = 100;
	
	int *p = &b;
	cout << *p << endl;	//取值 100
	
	return 0;
}

*p*是解引用指针运算符,可以获取p指向的地址中的值(也就是b)。

五、*&p&*p 的区别:

#include <iostream>
using namespace std;

int main(){
	int b = 100;
	int *p = &b;
	
	cout << "*&p : " << *&p << endl;
	cout << "&*p : " << &*p << endl;
	
	return 0;
} 

1、*&p 是右结合的,也就是先计算&p,得到 p 的地址,*(&p) 解引用,获取地址里对应的值,也就是b的地址;

2、&*p 也是右结合,也就是先计算*p,进行解引用,获取p指向地址的值,也就是b,&(*p) 就是再取b的地址;

3、所以,它们得到的结果是一样的,都是b的地址。

注意:不能解引用非指针变量。

爱码岛编程公众号
微信扫码关注
爱码岛编程小程序
微信扫码打开
苏ICP备13052010号
©2023 南京匠成信息科技有限公司