改变地址上的值 和 把地址上的值赋给一个变量,改变变量的值 的区别

之前没认真想过的一个点,改变地址上的值把地址上的值赋给一个变量,改变变量的值 的区别

 1 int a = 2;
 2 int* p = &a;
 3 
 4 
 5 //改变地址上的值
 6 (*p) = 3; // 修改p指向的地址上的值,a的值改变
 7 
 8 
 9 //把地址上的值赋给一个变量,改变变量的值
10 int b;
11 b = (*p); // 把 p指向的地址上的值 赋给b,发生了拷贝(深拷贝)
12 b = 3; // b的值跟a没关系,a的值不受影响

 

posted @ 2023-01-19 16:20  balabalahhh  阅读(11)  评论(0编辑  收藏  举报