由于某些原因,第一个要打印的数字不遵守main函数中的for循环,告诉它的范围是0-10;但当
void printArray(int augArray[5])
{
cout << *augArray; //this line is taken out, the for loop proceeds with normal
for (int i = 0; i < 5;) //outputs, when the first line is kept also the for loop only
{ //produces 4 other numbers, just curious to why this is
cout << augArray[i] << endl; //happening, thanks.
i++;
}
}
int main()
{
srand(time(0));
int anArray[5];
for(int j = 0; j < 5;)
{
anArray[j] = rand() % 11;
j++;
}
printArray(anArray);
cout << anArray;
}
最佳答案
当在表达式中使用数组名时,其后没有方括号,则其值等于指向数组初始元素的指针,即表达式中的augArray
与&augArray[0]
相同。因此,*augArray
与*(&augArray[0])
相同,只是augArray[0]
(星号和&符相互抵消)。
输出看起来很奇怪的原因是,您在打印*augArray
之后没有放入行尾字符。您在输出中看到的“怪异数字”实际上是重复两次的数组的初始元素。