取消引用指针-vs-&-operator

Pat*_*jer 2 c c++ pointers dereference

这两个任务是否相同,即完全相同的东西?

*pointer = object

pointer = &object
Run Code Online (Sandbox Code Playgroud)

,其中pointer是指向"对象实例"的指针.

或者这只对原始类型有意义.

Oli*_*rth 12

不,这些都不一样.

pointer = &object设置pointer使它指向object.

*pointer = object将指向的东西的值设置pointer为等于的值object.


Luc*_*ore 5

绝对不.

*pointer = object
Run Code Online (Sandbox Code Playgroud)

更改指针指向的内存.

pointer = &object
Run Code Online (Sandbox Code Playgroud)

改变指针.

pointer   ---->    object1
&object   ---->    object
Run Code Online (Sandbox Code Playgroud)

在第一种情况下,这变为:

pointer   ---->    object
&object   ---->    object   
Run Code Online (Sandbox Code Playgroud)

在第二种情况:

                  ---->    object1 //could turn into a memory leak
&object, pointer  ---->    object
Run Code Online (Sandbox Code Playgroud)