理解这行C++指针代码

to understanding this line of C++ pointers code

本文关键字:指针 代码 C++      更新时间:2023-10-16

我正在阅读一个关于指针的示例代码,但我不明白开发人员为什么要写这个:

如果DD是我们定义的类,为什么它有效?

DD *g = 0,h(ARGUMENTS_HERE);

但这不起作用(没有零(?

DD *g = h(ARGUMENTS_HERE);

给定所提供的最小信息,如果必须猜测的话,我会说第一行有效,因为g被定义为指向DD的指针,并初始化为0或null。逗号后缀表示h(带参数(被定义为返回DD对象(而不是指向对象的指针,实际对象(的函数(带参数

第二行失败了,因为你试图将g初始化为函数h的返回值。由于我们不知道h实际上是如何定义的,我猜它要么没有定义,要么已经定义但没有返回指向DD的指针。

您在这里声明了两个不同的变量,一个指向DD的指针和一个DD对象。在第二个例子中,您试图分配h,它可能不存在,或者是您试图分配给指针的对象。