2015-04-12 108 views
-1

我正在通过SDL上的Lazy Foo的教程,我遇到了一些我不明白的东西。当我了解到指针时,我感觉它指向一个内存地址,因此必须解除引用以更改存储在该内存地址中的值。那么如何将一个不是内存地址的值赋给一个指针变量,而又不需要对它进行解引用呢?C++教程将指针赋值给指针而不需要解除引用

SDL_Surface* gHelloWorld = NULL; 

    gHelloWorld = SDL_LoadBMP("02_getting_an_image_on_the_screen/hello_world.bmp"); 
+2

指针分配不需要解引用。 –

+3

“一个不是内存地址的值” - 您是如何得出结论的:该函数没有返回内存地址? – Mat

+0

因为我来自c#的背景,并认为它没有......这解释了一切。 – Firearrow5235

回答

1

让我们把这个和房子比较一下,你的SDL_Surface对象是房子。 现在你的gHelloWorld是一个SDL_Surface指针。所以你可以将它与一张写有房屋地址的卡片进行比较。 在你初始化时,你给gHelloWorld一张空卡。 在下一行中,您可以调用SDL_LoadBMP,它会为您提供一张新的地址卡。 (也许这个功能为你建立了房屋,并给你建造房屋的地址)。