指针,指向变量存储的位置,其值为另一个变量的地址,即,内存位置的直接地址。就像是你的住址,“变量”住在一个城镇的多少号房子里面。
1. 指针的基本定义
声明指针的方式,type* name,type会与地址中住的变量的类型一致。
初始化指针时,因为指针指向的是变量的地址,所以,初始化指针以及对指针进行赋值时,需要对变量进行取地址的操作,取地址符是&,举例看一下:
int i=1;
float f=1.5;
int* ptr = &i;
float* fptr;
fptr = &f;
当你真的输出指针时,他会输出的是变量的地址,就是房子号,很长的一串数字,如:
#include<iosteam>
using name space;
int main()
{
int a = 10;
int* aptr = &a;
cout << aptr << endl;
system("pause");
}
最后输出的结果是
同理,当你想访问指针中存储的变量时,也需要对指针进行运算,可以使用 * 符号,取指针中的变量。看看房子里住了谁。这个操作就是把房子里的“变量住户”输出出来了,就是相当于把a输出出来了。看看例子:
int main()
{
int a = 10;
int* aptr = &a;
cout << *aptr << endl;
system("pause");
}
2. 数组的指针
定义一个数组,使用一个指针指向数组,那么这个指针指向的是数组中第一个变量的地址。数组中的每个变量地址都是挨着的,相当于一排连号的房子。指针指向的是这排房子的第一个房子中的变量,当指针+1时,就指向了第二个房子中的变量,也就是数组中的第二个变量。所以可以使用指针的运算来访问数组中的每个变量,例子如下:
#include<iostream>
using namespace std;
int main()
{
char name[] = { 'V','i','c','k','y'};
char* cptr = name;
for(int i=0;i<=4;i++)
{
cout << *(cptr + i) ;
}
}
最终能够把我的名字输出出来。Vicky。