指针变量运算

阅读量: 148 编辑

指针变量存储的是地址,而地址本身是一个整数,所以指针变量可以进行部分运算,比如 加法、减法、比较等。

一、指针加法

#include <iostream>
using namespace std;

int main(){
	int b = 100;
	int *p = &b;
	
	cout << "p : " << p << endl; //p就是b的地址 
	p++;
	cout << "p : " << p << endl; 
	p+=1;
	cout << "p : " << p << endl;
	
	return 0;
} 

得到的结果是

p : 0x6ffe14
p : 0x6ffe18
p : 0x6ffe1c

p 的值加了数值 4 ,一个 int 类型恰好是4个字节。

所以,指针的运算,是它指向的地址进行(类型对应的)字节大小的内存偏移。

减法和加法是类似的。

二、指针变量的比较

指针变量进行比较时,比较的是地址值。如果地址相等,表示指向的是同一个数据,否则是不同的数据。

#include <iostream>
using namespace std;

int main(){
	int b = 100;
	int *p1 = &b;
	int *p2 = &b;
	
	cout << (p1 == p2) << endl;	//p1 和 p2 指向的是同一个地址(b的地址)
	
	return 0;
}
爱码岛编程公众号
微信扫码关注
爱码岛编程小程序
微信扫码打开
苏ICP备13052010号
©2023 南京匠成信息科技有限公司