0

我知道这个长字符串可以更容易阅读,但我不希望这样!

我想获得一个像素的颜色,我正在使用 SDL。虽然这与问题不太相关......

http://www.gamedev.net/topic/502040-sdl-get-pixel-color/

http://www.libsdl.org/docs/html/sdlsurface.html

表明要获得此颜色值,您可以:

 Uint32 *pixels = (Uint32 *)surface->pixels;
  return pixels[ number ];

好吧,我没有那样的东西,我还想尝试掌握整个运算符优先级的东西..

我已经尝试了一点,但我无法让它与最后一个 [] 运算符一起使用。

所以......我得到了这个:

vector<Class*>* pointer_To_A_Vector_With_Pointers;

Class.h: 
vector<Class2*>* get_Another_Vector(); 

Class2.h
SDL_Surface* sdlSurface; 

SDL_Surface.h
has the pixels-array 




Uint32 value =  *(Uint32*) (* pointer_To_A_Vector_With__Pointers[i]->get_Another_Vector()  )[i2]->sdlSurface->pixels;

它应该相当于这样说:

   Uint32 *pixels = (Uint32 *)surface->pixels;

它可以工作,但只检索像素数组的第一种颜色。但我想实现这一点(行尾的 [number] ):

Uint32 value =  *(Uint32*) (* pointer_To_A_Vector_With__Pointers[i]->get_Another_Vector()  )[i2]->sdlSurface->pixels[ number ];

换句话说,我想要最后一个 operator[] , sdlSurface->pixels[numbers], 包括在内。

4

1 回答 1

3

的优先级[]高于*,所以:

 *pointer_To_A_Vector_With__Pointers[i]->get_Another_Vector() 

应该:

 (*pointer_To_A_Vector_With__Pointers)[i]->get_Another_Vector() 

正如您的变量名称所暗示的那样。

于 2013-07-31T12:12:23.493 回答