我想该鸟应该遇见的是程序越界的事,你的问题应该是类似于这样的void f1(int *pNum,int n) { for(int i=0;i<n;i++) *pNum++ = rand()%100; }void f2(int *pNum.int n) { for(int i=0;i<n;i++) cout<<*pNum++<<endl; }void f3(int *pNum,int n) { for(int i=0;i<n;i++) cout<<*pNum++<<endl; }void main() { const int N=5; int num1[N],num[N]; f1(num,N); f2(num1,N*2); // Note: the dim num1 is N, now we let it be 2N f3(num,N); }也就是在f1中输出的结果和f3中输出的结果不同,这是有可能的,因为你的指针在别的地方改变了他的值 也就是——你的程序里有BUG
srand((unsigned)time(NULL))
for(int i=0;i<10;i++)
num[i]=rand()%100;
的話,那不改變的話那才奇怪了。
{
for(int i=0;i<n;i++) *pNum++ = rand()%100;
}void f2(int *pNum.int n)
{
for(int i=0;i<n;i++) cout<<*pNum++<<endl;
}void f3(int *pNum,int n)
{
for(int i=0;i<n;i++) cout<<*pNum++<<endl;
}void main()
{
const int N=5;
int num1[N],num[N]; f1(num,N);
f2(num1,N*2); // Note: the dim num1 is N, now we let it be 2N
f3(num,N);
}也就是在f1中输出的结果和f3中输出的结果不同,这是有可能的,因为你的指针在别的地方改变了他的值
也就是——你的程序里有BUG
void f2(int *pNum.int n)
{
for(int i=0;i<n;i++)
{
*pNum *= 2;
cout<<*pNum++<<endl;
}
}