初学者理解c++指针(&与*)的用法

初学者理解c++指针(&

很多人认为c++指针非常难理解,我觉得最难理解的就是(&和*)的用法,指针问题就迎刃而解,
万事只怕开头难,实践是检验真理的唯一标准,唯有撸代码才能理解指针,
所有我的任何见 解都在源代码注释里,
这是我第一次发博客肯定有疏忽和错误,欢迎提出宝贵的意见和建议(勿喷)!

#include<iostream>
using namespace std;
int main() {
	/*在我的理解里指针系统   就是地址 (&)+变量的地址地址对应的数据(*),
	然而(*)有点特别,它有3种功能 1.可以表示一个变量是指针类型(imt *),
	                            2.也可以表示一个指针变量的所指向的地址(int* p = &x)
								3,获取获取某个地址存储的数据(*p)


	 */
	/************************************
	我们来先通过下面的实验讲一讲(&)地址
	**************************************/

	cout << "*********************************\n";
	cout << "*************实验-**************\n";
	cout << "*********************************\n";
	cout << "                                     \n";
	string a;  //新建字符串一个变量 a
	//string b; //新建一个字符串变量 b
	a = "这是a值";	//给a赋值
	string& b = a;	 //把a的地址给b
	string& c = a;//把a的地址给c
	cout << "&a:" << &a << " &b:" << &b << " &c: " << &c;//我们可以看到a,b,c 的地址
	cout << "a" << a << " b:" << b << " c:" << c << endl; //我们可以看到a,b,c的数据
	b = "所有的数据都变成我";
	cout << "*************************************\n";
	cout << "修改b之后的数据...\n";
	cout << "&a:" << &a << " &b:" << &b << " &c: " << &c << "\n"; //地址与14行不变
	cout << "a" << a << " b:" << b << " c:" << c << endl;//a,b,c全部数据变成"所有的数据都变成我"; 
	 /*结论1, (&) 号表示取地址*/
	/*结论2,我们可以看到相同地址所对应的数据是相同的*/
	/*效果见 实验一的运行结果图*/ }
实验一的运行结果图

在这里插入图片描述

#include<iostream>
using namespace std;
int main() {
	/**********************************************
	  我们通过下面的实验讲一讲 (*)  变量的地址对应的数据
	***********************************************/
	cout << "                        \n \n";
	cout << "*********************************\n";
	cout << "*************实验二**************\n";
	cout << "*********************************\n";
	int x = 32;
	int* p = &x;//   把x的  地址  赋值给p.说人话:p表示x的地址.
	int y = *p;// y= 取p的地址的值,
	cout << "x的值数据:" << x << "  x的地址:" << &x << "  p的数据:" << p << " p的值:" << y << "\n";
	/*结论1.可以表示一个变量是指针类型(imt *),
	      2.也可以表示一个指针变量的所指向的地址(int* p = &x)
		  3,获取获取某个地址存储的数据(*p) */



	//***********抱歉编不下去了;  */
	//效果见  实验二的的运行结果图 
}
实验二的的运行结果图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值