通过指针,可以简化一些C++编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。每一个变量都有一个内存位置,每一个内存位置都定义了可以用&运算符访问地址,它表示了在内存中的一个地址。
什么是指针:
指针是一个变量,其值为另一个变量的地址,即内存位置的直接地址。就像其他变量或常量一样,必须在使用指针存储其他变量的地址之前,对其进行声明。指针变量声明的一般形式为:
type *var-name
在这里,type是指针的基类型,它必须是一个有效的c++数据类型,var-name是指针变量的名称,
1.当*用于定义时,是表明该变量为指针类型
2.*的作用可以用来取值
3.*用于取值时就是取出该地址中存储的值。
其他:
Null 指针:Null指针是一个定义在标准库中的值为零的常量。
在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个Null值是一个良好的编程习惯,赋为Null值的指针被称为空指针。
#include <iostream>
using namespace std;
int main()
{
int a = 10;
cout<<"变量a 的地址"<<&a<<endl;
int *p=NULL;//这里的*是标识p的类型为整型指针(int*)类型。
cout<<"指针p的初始值为"<<p<<endl;
p=&a;//将p指向a的地址。
cout<<"指针p获取的a的地址为"<<p<<endl;
cout << "*p = " << *p <<endl; //输出*p的值。这里的*就是取值的作用。
a = 20;//改变a的值,也就是改变*p的值。
cout << "*p = " << *p <<endl; //再次输出*p的值。这里的*同样是取值的作用。
return 0;
}
运行结果
变量a 的地址0113FF14
指针p的初始值为00000000
指针p获取的a的地址为0113FF14
*p = 10
*p = 20
请按任意键继续. . .