我知道这个长字符串可以更容易阅读,但我不希望这样!
我想获得像素的颜色而我正在使用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 ];
嗯,我没有那样,我也想尝试掌握整个运算符的优先级。
我已经尝试了一下但我无法使用last []运算符。
所以...我明白了:
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;
它可以工作但只检索像素数组的第一种颜色。但我想实现这个目标(最后一行的[数字]):
Uint32 value = *(Uint32*) (* pointer_To_A_Vector_With__Pointers[i]->get_Another_Vector() )[i2]->sdlSurface->pixels[ number ];
换句话说,我希望包含最后一个运算符[],sdlSurface->pixels[numbers]
。
答案 0 :(得分:3)
[]
的优先级高于*
,因此:
*pointer_To_A_Vector_With__Pointers[i]->get_Another_Vector()
应该是:
(*pointer_To_A_Vector_With__Pointers)[i]->get_Another_Vector()
如您的变量名所示。