10-指针的加/减操作

变量地址(内存单元地址)的加减操作

代码实现

#include <iostream>
using namespace std;
int main() {
	int n1 = 12, n2 = 87;
	char c1 = '9', c2 = 'B';

	cout << "n1:value = " << n1 << " address = " << &n1 << endl;
	cout << "n2:value = " << n2 << " address = " << &n2 << endl;
	cout << "c1:value = " << c1 << " address = " << &c1 << endl;
	cout << "c2:value = " << c2 << " address = " << &c2 << endl;

	int* pn = &n1;
	char* pc = &c1;
	
	cout << "pn: " << pn << endl;
	cout << "pn + 1: " << pn + 1 << endl;
	cout << "pn - 1: " << pn - 1 << endl;

	cout << "pc: " << pc << endl;
	cout << "pc + 1: " << pc + 1 << endl;
	cout << "pc - 1: " << pc - 1 << endl;
	
	*(pn - 1) = 367;
	cout << "n2 = " << n2 << endl;
	cin >> *(pn - 1); // runtime value
	cout << "n2 = " << n2 << endl;

	*(pc - 1) = 'K';
	cout << "c2 = " << c2 << endl;
	cin >> *(pc - 1); // runtime value
	cout << "c2 = " << c2 << endl;

	return 0;
}

运行结果

Visual C++ 2022
image

Question:分配的内存空间不是相邻的
(大学时上机操作指针,经常遇到程序报错情况,每每得各种排查一通;
后来工作了,很少能够操作指针了;
现在又能操作指针,其实,挺有趣的耶)

Dev-C++ 5.11

image

image

image

image

posted @ 2022-11-20 15:11  彩红caihong  阅读(34)  评论(0)    收藏  举报