C++学习随笔:指针
指针是一个可用于储存内存地址的变量。储存在指针中的地址通过对应变量所在的内存的位置,也可以是函数的地址。
1.指针的声明
char c = "asd";
// 地址运算符&是一个一元运算符,他可以获取储存变量的内存地址。
char* p = &c; //p指向c的指针
//间接运算符*和指针变量一起使用,访问指针所指向的内容位置的内容。
cout<<*p<<endl;//输出asd
//数组
char[] c1 = "asd";
char* p1[] = &c1;
cout<<*p1<<endl//这条语句将打印字符‘a’
p1+=2;
cout<<*p1<<endl;//打印c
cout<<*p1[1]<<endl;//打印b
//多维数组
char c2[3][4];
char* p2=&c2[0][0];//初始化
char* p2=c2[0];//把指针设置为数组中的第一个元素地址;
char (*p2)[4]=c2;//指向这个数组地址
多维数组指针表示法
p2[i][j]//通常是这样的
*(*(p2+i)+j)//在指针表示法应该这样表示
2.指针的初始化
使用未初始化的指针甚至比使用未初始化的一般变量和数组更危险.如果指针包含一个垃圾值,就可能覆盖内存的某个随即区域.因为造成的伤害仅取决于运气,所以一定要使指针初始化.
int* p = 0;
or
int a = 132;
int* p = &a;
3.指针的内存分配
double* pd = 0;
//分配
pd = new double(1.33);
//释放
delete pd;
数组的分配
p=new char[2];
delete [] p;