https://www.bilibili.com/video/BV1Gi4y1w7yG?spm_id_from=333.337.search-card.all.click
使用&获取某个变量的地址
使用*获取该地址对应的值
对于声明一个指针,需要在要指向的原数据结构的指针上加一个*
如需要创建一个指针指向int
和需要创建一个指针指向int**
int *ptr=&ptr//加一个
int** *ptr3=&ptr//也是加一个
#include <iostream>
using namespace std;
int main() {
int num=10;
int *ptr=#
cout<<ptr<<endl;
cout<<*ptr;
return 0;
}
//0x3bdcfe14
//10
以下语法效果对比
*ptr=20;//num=20
int *ptr1=20;//非法语句,不能直接指向
char *ptr='H';//同样非法,不能直接指向
char *ptr="Hello";//合法但不建议的做法
int **ptr2=&ptr;//合法的创建了一个指向指针的指针
int **x=#//这不合法
int **ptr2=&ptr;
*ptr2=5;//这句话是合法的,此时ptr就等于0x5(间接修改了ptr的值,ptr2的值不受影响)(因为确实不是该ptr2啊,*代表其指向的值啊)
cout<<*ptr//这句话报错,访问了0x5所指向的值,然而这越界了