C++ SDL_CreateWindow函数中使用的指针

C++ SDL_CreateWindow函数中使用的指针,c++,sdl-2,C++,Sdl 2,当使用SDL_Window类型的指针,然后将指针设置为SDL_CreateWindow函数时,为什么此语法有效 SDL_Window * window = NULL; window = SDL_CreateWindow("test", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOSUNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN); 我了解基本指针是如何工作的,指针包含内存地址,可以被引用,例如: i

当使用SDL_Window类型的指针,然后将指针设置为SDL_CreateWindow函数时,为什么此语法有效

SDL_Window * window = NULL;
window = SDL_CreateWindow("test", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOSUNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
我了解基本指针是如何工作的,指针包含内存地址,可以被引用,例如:

int a = 7;
int* ptr = &a;
*ptr = 10;
这会将a的值从7更改为10

由于指针必须包含内存地址,我不明白为什么以下命令在SDL中有效:

SDL_Window * window = NULL;
window = SDL_CreateWindow("test", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOSUNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
特别是,为什么window=SDL_CreateWindow(.)不是内存地址呢


我的另一个想法是,也许这与SDL是用C编写的有关,但我不认为这是原因。

我没有意识到函数应该返回指针。但现在它有了意义。谢谢。

“这不是内存地址,是吗?”为什么您认为
SDL\u CreateWindow()
不会返回有效的内存地址??完全不清楚你在问什么具体问题。
SDL\u CreateWindow()
的函数调用应该返回一个指针变量。您了解
*ptr=10
window=SDL_CreateWindow(…)