Jet_Shawn 发表于 2020-5-11 15:38:57

关于C++指针赋值问题

在初始化赋值的时候,如图1所示,我们是用pChar这个指针变量等于&ch1;

但是在图2中,直接用 int *p1 =&x, 这样的意思不是让*p = &x吗,但是上面的是命名方式类似于p = &x。

想要请教一下这里面有什么区别,感谢!

qiuyouzhi 发表于 2020-5-11 15:44:08

如果不是定义变量(且不是乘号),星号就是取值运算符
作用是取出一个地址中的值(个人理解)。

Jet_Shawn 发表于 2020-5-11 16:02:12

qiuyouzhi 发表于 2020-5-11 15:44
如果不是定义变量(且不是乘号),星号就是取值运算符
作用是取出一个地址中的值(个人理解)。

对,取值这个可以理解。就是想问这两种赋值的方式意思是一样的吗?

qiuyouzhi 发表于 2020-5-11 16:04:05

Jet_Shawn 发表于 2020-5-11 16:02
对,取值这个可以理解。就是想问这两种赋值的方式意思是一样的吗?

不一样,pChar是指向了ch1的地址,
而ch2是pChar的值,也就是ch1的值,
也就是A。

Jet_Shawn 发表于 2020-5-11 16:36:24

qiuyouzhi 发表于 2020-5-11 16:04
不一样,pChar是指向了ch1的地址,
而ch2是pChar的值,也就是ch1的值,
也就是A。

我的意思是直接int *p1 =&x和先定义int *p1,再p1 = &x有没有区别呀?非常感谢!

qiuyouzhi 发表于 2020-5-11 16:47:33

Jet_Shawn 发表于 2020-5-11 16:36
我的意思是直接int *p1 =&x和先定义int *p1,再p1 = &x有没有区别呀?非常感谢!

噢,这个没有区别{:10_256:}
刚才405了不能回复你{:10_266:}

Jet_Shawn 发表于 2020-5-11 17:04:17

qiuyouzhi 发表于 2020-5-11 16:47
噢,这个没有区别
刚才405了不能回复你

非常感谢!{:10_279:}
页: [1]
查看完整版本: 关于C++指针赋值问题