如果现在有一个类指针,记录的是地址
MyClass *A,*B
A->Func() 和 (*A).Func()有区别吗?
如果想改变指针指向的地址,应该用
A=B 还是 *A=*B ?
(1)没有区别
(2)A=B
【以下回答由 GPT 生成】
问题回答:
A->Func()
和(*A).Func()
的效果是相同的,都是调用指针所指向对象的成员函数Func()
。A->Func()
是使用指针成员访问操作符(->
)直接调用成员函数,(*A).Func()
是通过解引用操作符(*
)将指针解引用为对象后再调用成员函数。两者的结果是相同的,只是书写方式不同。
如果想改变指针指向的地址,应该使用A=B
。A=B
表示将指针变量B的值赋给A,即A和B指向同一个地址。而*A=*B
的意思是将指针B所指向的对象赋值给指针A所指向的对象,而不是改变指针的指向。这两个操作的结果是不同的。使用 A=B
可以改变指针的指向地址,而不是改变指针所指对象的值。
引用GPT:
1.A->Func()和(*A).Func()的效果是相同的,都是调用指针所指向对象的成员函数Func()。A->Func()是使用指针成员访问操作符(->)直接调用成员函数,(A).Func()是通过解引用操作符()将指针解引用为对象后再调用成员函数。两者的结果是相同的,只是书写方式不同。
2.如果想改变指针指向的地址,应该使用A=B。A=B 表示将指针变量B的值赋给A,即A和B指向同一个地址。而*A=*B 的意思是将指针B所指向的对象赋值给指针A所指向的对象,而不是改变指针的指向。这两个操作的结果是不同的。使用 A=B 可以改变指针的指向地址,而不是改变指针所指对象的值。