学习资源来自于VC驿站,部分地方有引用VC驿站,特此申明。
1.地址
每一个数据都会储存在相应的地址,如果要知道变量的地址,则可以通过:
int a=0;
cout<<&a<<endl;
将变量a的地址打印出来。地址的表示方式很复杂,多为“0X”+“(一串数字)”。
2.指针
为了将地址用一种更好的方式表达出来,定义什么类型的指针,就在*前面加类型。如:
int* p;//定一个整型的指针p。
如果我们要把a变量的地址给指针,那么要怎么做呢?
int* p=a;//这样能行吗?前面一个是指针,后面一个是整型数据,肯定不行。但是我们将a变成地址呢?因为指针就是表示地址的一种方式,我们可以通过:
int* p=&a;//这种方式表示。p是一个指针变量,指针变量也是有地址的,&p就是它的地址。指针变量的内容是反映其它变量的。
通过变量的地址,也可以得到变量的自身,
int a = 5;
int* pa = &a;
*pa = 6;
即:在指针变量的前面加上一个*就能得到指针指向的变量自身。
所以对一个变量的修改,既可以通过该变量自身(直接修改),也可以通过指针/地址来实现修改(间接修改)。
也就是说单纯的pa是一个指针变量,用于表示变量的地址,加上一个*就指向地址所在的内容,是表示变量的内容。