我是一个全新的编程小白,请原谅我的无知。我的作业状态:
编写一个程序,声明一个包含 10 个整数的数组。编写一个从键盘接受 10 个值的循环,并编写另一个显示这 10 个值的循环。不要在两个循环中使用任何下标;仅使用指针。
这是我的代码:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
const int NUM = 10;
int values[NUM];
int *p = &values[0];
int x;
for(x = 0; x < NUM; ++x, ++p)
{
cout << "Enter a value: ";
cin >> *p;
}
for(x = 0; x < NUM; ++x, ++p)
{
cout << *p << " ";
}
return 0;
}
我想我知道我的问题出在哪里。在我的第一个循环之后,我的指针位于 values[10],但我需要将其返回到 values[0] 以显示它们。我该怎么做?
最佳答案
你可以像你第一次赋值 p
那样做:
p = &values[0];
此外,数组非常像指向静态分配内存的指针(您无法更改)。因此,表达式 &values[0]
的计算结果与 values
的计算结果相同。因此,
p = &values[0];
与
相同p = values;
关于c++ - 如何将指针重置为特定的数组位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2936078/