这是指针吗?(如果是这样,它是如何初始化的?)

M M*_*M M 1 c c++

有一个头文件esU​​til.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;

 ...
}
Run Code Online (Sandbox Code Playgroud)

我对语句中的"*userData"感到困惑:UserData*userData = esContext-> userData;

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

ald*_*ldo 6

是的,它是一个指针.这条线

UserData *userData = esContext->userData;
Run Code Online (Sandbox Code Playgroud)

声明一个名为userDatawith type UserData *(指向UserData)的变量,并用值初始化它esContext->userData.