我正在尝试使用相同的随机选择的整数填充多个数组,但我一直在主题行中得到错误。这是我的代码:
while(i++ < arraySize){
randInt = (int)random()%100;
originalArray++ = randInt;
ascendingOrderArray++ = randInt;
descendingOrderArray++ = randInt;
}
为什么在此上下文中发生此错误?根据我的理解,这段代码与将randInt分配给三个数组,然后在代码末尾递增指针相同。
答案 0 :(得分:1)
假设originalArray
,ascendingOrderArray
和descendingOrderArray
是int *
类型的指针而randInt
类型为int
,则必须 - 在分配时引用指针。例如*originalArray++ = randInt;
。这将取消引用指针,产生&#34;左值&#34;您可以分配给它,将randInt
的值赋给它(当originalArray
指针指向的时候),然后递增指针。
答案 1 :(得分:1)
在这里,您尝试为数字赋值 - 指向数组的地址。数字是右值,而不是左值,所以它失败了。
originalArray++ = randInt;
这里,您要为内存位置分配一个值 - 通过取消引用指针获得的地址。这是一个左值,所以它成功了:
*originalArray++ = randInt;
答案 2 :(得分:0)
原始++不是对象,因此您无法在其中存储值。