这两项任务是否相同,即完全相同的东西?
*pointer = object
pointer = &object
,其中pointer是指向“object-instance”的指针。
或者这只对原始类型有意义。
答案 0 :(得分:12)
不,这些不一样。
pointer = &object
设置pointer
,使其指向object
。
*pointer = object
将pointer
指向的事物的值设置为等于object
的值。
答案 1 :(得分:5)
绝对不是。
*pointer = object
更改指针指向的内存。
pointer = &object
更改指针。
pointer ----> object1
&object ----> object
在第一种情况下,这变为:
pointer ----> object
&object ----> object
在第二种情况下:
----> object1 //could turn into a memory leak
&object, pointer ----> object
答案 2 :(得分:2)
不,这些不等同。第一个使指针的目标值等于右侧的对象。第二个更改指针本身,使其指向右侧的对象。
换句话说,在第一个之后,内存中有两个对象的值等于object
的值。在第二个之后,只有一个具有该值的对象,另外还有一个指向该对象的指针。
答案 3 :(得分:0)
NO。
你的第一个表达式将object的值赋给指针。
假设您的指针变量指向0x1234。在第一次赋值之后,地址0x1234将包含值“object”。
而第二次赋值会使指针指向对象的地址。
如果在第一个赋值指针之后更改值对象,则不会注意到任何内容。
作为第二个赋值,如果更改object的值,则可以通过
获取更新的值*pointer.