1、当指针指向一个变量,指针解引用后++,指向的变量也++。
例如: int b=10; int *p = &b; (*p)++; // 相当于b++;
指针和引用的区别:
2、指针是一个变量,存储的是变量的地址,引用是取变量别名。
3、指针可以指向空,但引用定义时必须初始化 。
4、指针在初始化之后可以改变指向,引用在初始化之后不可再修改 。
5、sizeof()指针得到的是本指针的大小,sizeof()引用得到的是引用所指向变量的大小。
6、当把指针作为参数进行传递时,也是将实参的一个拷贝传递给形参,两者指向的地址相同,但不是同一个变量,在函数中改变这个变量的指向不影响实参,而引用却可以 。
7、引用本质是一个指针常量,同样会占8字节内存;指针是具体变量,需要占用存储空间。
8、不存在指向空值的引用,必须有指向值;但是存在指向空值的指针 。
9、注:"引用"的本质是 "常量指针":int *const p; //指向的地址不能修改。常量指针本质上是一个指针,常量表示指针指向的内容,说明该指针指向一个“常量”。在常量指针中,指针指向的内容是不可改变的,指针看起来好像指向了一个常量。
例子: int a = 2, b = 4; const int *p = &a; //等价于int const*p=&a;
p = &b; // 指针可以指向其他地址,地址可以改变,内容不可改变。
10、int const *p = 10 ; //指针常量,指向的变量不能修改,在指针常量中,指针自身的值是一个常量,指针变量不允许修改。在定义的同时必须初始化。
例子: int *const a=5;
或 int a,b; int * const p=&a ; //定义的同时初始化
// p=&b; //操作错误