c++ - 这是一个指针吗? (如果是这样,它是如何初始化的?)

标签 c++ c

有一个头文件 esUtil.h,其中定义了一个名为 ESContext 的结构,其成员之一是 userData。 userData 是指向 void 的指针。

使用它的程序主体是这样的,简单地说:

#include "esUtil.h"

typedef struct {
 GLuint programObject;
} UserData;

int DoSomething(ESContext *esContext) {
 UserData *userData = esContext->userData;

 ...
}

int main(int argc, char *argv[]) {
 ESContext esContext;
 UserData userData;

 esStart(&esContext);
 esContext.userData = &userData;

 ...
 if(!DoSomething(&esContext))
  return 0;

 ...
}

我对语句中“*userData”的含义感到困惑:UserData *userData = esContext->userData;

而如果是一个指针,它是如何在没有被声明的情况下产生的。感谢您的任何解释。

最佳答案

是的,它是一个指针。线路

UserData *userData = esContext->userData;

声明一个名为 userData 的变量,类型为 UserData *(指向 UserData 的指针)并用值 esContext- 初始化它>用户数据

关于c++ - 这是一个指针吗? (如果是这样,它是如何初始化的?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9815801/

相关文章:

python - "syscall-template.S: No such file or directory"是 GDB 还是我的程序的错误

android - Android 仿生 libc 中缺少 adjtime()

c - mpi 中的进程以什么顺序执行...我的意思是排名顺序?例如 : rank==0 first and rank==1 next?

python - 获取 lib clang 游标/类型的实际拼写

类中的 C++ 线程

c++ - 将 char 指针数组传递给函数

c++ - 如何修复我的 while 错误?

c++ - 使用 boost::adjacency_list 的自定义边属性迭代边

C 编程抽象 - typedef 外部声明

c - matlab中这个方法还有其他近似方法吗?