我创建了一个简单的函数来交换C++/SFML
中的两个像素,同时获取两个像素索引和指向像素数组的指针。
我一直收到错误"Expression must be a modifiable lvalue"
。
typedef unsigned int uint;
void swapPixels(uint idx1, uint idx2, const sf::Color *pxColorBuffer){
sf::Color temp = pxColorBuffer[idx1];
pxColorBuffer[idx1] = pxColorBuffer[idx2];
pxColorBuffer[idx2] = temp;
}
我想知道为什么这种方法不起作用,因为我传入了一个指向可修改值的指针。
答案 0 :(得分:0)
如果您阅读了有关指针的信息,则应该注意
const TYPE *
(称为TYPE const *
)是一种指针,它指向不可修改的TYPE
对象。指针本身可以更改,但指向的值不能更改。
TYPE * const
是一种指针,它指向可修改的TYPE
对象,但是在这种情况下不能更改指针。
const TYPE * const
被称为TYPE const * const
,是一种指针,它指向不可修改的TYPE
对象,并且不能更改。