- 声明指针变量后,没有赋值之前,里面是乱七八糟的值,此时不能使用指针。因此,指针声明的同时必须初始化,否则不管是否报错,都有可能对程序造成影响。
不只是指针变量,其他的普通变量也应该这样。 - 指针存放变量的地址,因此指针名表示的是地址(就像变量名可以表示变量的值一样)
- *运算符被称为间接值或者解除引用(解引用)运算符,将它用于指针,可以得到该地址的内存中存储的值。
int a = 0; int* p = &a;//指针声明的同时必须初始化 cout << "*p=" << *p << endl;//指针p指向的值就是a的值
-
指针前加*,叫做解引用,指针解引用后与变量名a的效果是一样的
int a = 0; int* p = &a;//指针声明的同时必须初始化 //指针前加*,叫做解引用,指针解引用后与变量名a的效果是一样的 cout << "*p=" << *p << endl;//指针p指向的值就是a的值 cout << "a=" << a << endl;//指针p指向的值就是a的值
-
用对指针解引用的方法对变量赋值,与直接对变量赋值效果一样。
int a = 0; int* p = &a;//指针声明的同时必须初始化 //指针前加*,叫做解引用,指针解引用后与变量名a的效果是一样的 cout << "*p=" << *p << endl;//指针p指向的值就是a的值 cout << "a=" << a << endl;//指针p指向的值就是a的值 *p = 8;//用对指针解引用的方法对变量赋值,与直接对变量赋值效果一样。 cout << "*p=" << *p << endl;//用对指针解引用的方法对变量赋值,与直接对变量赋值效果一样。 cout << "a=" << a << endl;//用对指针解引用的方法对变量赋值,与直接对变量赋值效果一样。
-
多个指针可以指向同一个变量
int* p1 = &a; cout << "*p=" << *p << endl;//指针p1也是指向变量a的指针 cout << "*p1=" << *p1 << endl;//指针p1也是指向变量a的指针 cout << "p=" << p << endl;//指针p1也是指向变量a的指针 cout << "p1=" << p1 << endl;//指针p1也是指向变量a的指针
C++指针基础(二)--指针的使用
最新推荐文章于 2023-07-10 15:48:28 发布