【发布时间】:2012-11-24 19:48:44
【问题描述】:
这是我的代码:
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; 它也可以。
为什么我的第一种方法不起作用?
【问题讨论】:
-
有人可以为这个问题建议一个更好的标题,以便它可以出现在搜索中吗?
标签: c++ arrays pointers syntax