2015-04-12 109 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,它會爲您提供一張新的地址卡。 (也許這個功能爲你建立了房屋,並給你建造房屋的地址)。