//对reference & 和 dereference * 的进一步理解//
#include"iostream" int main() { int a = 9; //等号左边&为引用,取alias 举个例子// int& a = b; b = 10;
std::cout<<a<<","<<b<<std::endl;
//输出 10,10意味着你如果引用 &a 为b 改变b等于改变a的值//
//等号右边意味着取一个变量的地址//
int a = 8;
int* b = NULL;
b = &a;
//等同于取变量a的地址,让指针b指向a//
int* a = nullptr;
//同样*在等号左边相当于声明一个指针,一个 1 bit 的数 加上类型限制 这个数的大小//
int b = 10;
a = &b;
int c = *a;
//同样*在等号右边等同于解这个指针这个数指向内存的值//
现在有个confusion 假如我这样写
int* b = NULL:
*b = 10;
//为什么会出现读取错误//
//如果我这样写呢// int num = 10;
*b = num; //这种肯定不对 ,num类型为int b类型为int* 但是这里这个*怎么理解? //疑惑解除了,你得首先让空指针指向一个内存地址,然后用*b = 10;这种方法改变这个指针指向内存的值//
int b = 10;
int* a = &b;
printf("%d", *a);//10//
*a = 14;
printf("%d", *a);//14//
}