【发布时间】:2017-02-06 08:49:18
【问题描述】:
所以我是编程新手,我想了解我的教授在这个程序中使用指针。
#include <iostream>
using namespace std;
typedef int* IntPtr;
int main()
{
IntPtr p;
int a[10];
int i;
for(i = 0; i<10; i++)
a[i] = i;
p = a;
for(i = 0; i<10; i++)
cout << p[i]<< " ";
cout << endl;
}
输出: 0 1 2 3 4 5 6 7 8 9
根据我读到的'p = a'会将数组第一个元素的地址传递给'p'。所以我假设输出将全为零。但是当它打印时,它具有与数组“a”相同的元素。就像它把 a 的所有元素的地址传递给 p 一样。有人可以解释为什么。抱歉,如果我不能很好地解释这个问题,但我希望你明白我的意思。
【问题讨论】:
-
如果您是新手,请远离数组和指针,还有更重要的东西要学习。话虽如此,您是在说
p = a;,然后期望p的行为与a不同。为什么? -
typedef int*:( 为什么,哦,为什么你的教授会通过在 typedef 中隐藏指针来使程序更难理解。千万不要在实际程序中这样做,除非函数指针可能变得不可读否则。