C++指针学习

指针的概念:指向另一个变量的地址,用于间接访问该变量。

指针变量的概念:用于存放地址的变量。

指针变量的初始化: 存储类型 数据类型 *指针=初始地址;

例如:  int *pa = &a;

注意事项:

  1、用变量地址作为初始值时,该变量必须在指针初始化之前已经说明过,且变量类型与指针类型一致。

  2、可以用一个已赋初值的指针去初始化另一个指针变量。

  3、不要用一个内部auto型的变量去初始化static型的指针。

  4、可以将指针赋值为整数0,表示空指针。

  5、允许声明指向void类型的指针。该指针可以被赋予任何类型对象的地址。void类型指针赋值给其他类型指针的时候需要强制类型转换。

指针的加减运算:

指针p加上或减去n,其意义是指针当前指向位置的前方或后方第n个数据的地址。  这种运算的结果取决于指针指向的数据类型。

例如:

y=*px++;相当于y=*(p++);

指向数组元素的指针:

int a[10];

*p;

p = a;

如果有上述的关系,那么a[i],*(p+i),*(a+i),p[i]都是等效的。

不能写a++,因为a是数组首地址,是常量。

指针的关系运算:

指向相同类型数据的指针之间可以进行各种关系运算。

指向不同类型数据的指针,以及指针与整数变量之间的关系运算是没有意义的。

指针可以与0之间进行等于或者不等于的关系运算。例如:p==0或p!=0

指向常量的指针:const char * name = "John"; 所指向的对象的值不能改变。

常量指针:char * const n = "John"; 指针本身不能改变

 指向类类型对象的指针:

声明形式:

类名 *对象指针名

例如:Point A(10,20);

Point *p;

p=&A;

可以通过指针访问对象成员  p->成员名

原文地址:https://www.cnblogs.com/SeawinLong/p/3734120.html