这是我的代码:
void doubleValuesInArray(int *pointer) {
for (int n = 0; n < 2; n++) {
int a = (*pointer+n);
a = a * 2;
*pointer+n = a;
}
}
int main(int argc, char** argv) {
int myArray[] = {1,2};
doubleValuesInArray(myArray);
cout<<myArray[0]<<endl;
return 0;
}
输出是:
main.cpp:在函数'void doubleValuesInArray(int *)'中:main.cpp:19:错误:赋值make [2]中的非左值:* [build/Debug/Cygwin-Windows/main.o]错误1 make [1]:[.build-conf] 错误 2 make: * * [.build-impl] 错误 2
我的问题是:
int a = (*pointer+n);
工作得很好。变量 'a' 通过使用 *pointer + n 从数组中获取值 0 和 1。
然而
*pointer+n = a;
似乎不起作用。
如果我使用指针[n] = a; 它也可以。
为什么我的第一种方法不起作用?