用C ++中的指针数组打印值

时间:2014-01-25 16:29:55

标签: c++ arrays pointers

这是一个只打印单个值的代码如果我想打印整个数组,它就不能正常工作。

#include <iostream>
using namespace std;

int *firstDay(int fd)
{

int d[35] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int setday = 1;
int *pnd;
pnd = d;

int limit = 35 - fd;

for(fd;fd<limit;fd++)
{
    d[fd] = setday;
    setday++;
}
return pnd;
  }

 void display(int *d)
{
cout<<d[1]<<endl;  // value 0
cout<<d[2]<<endl;  // value 1
cout<<d[3];        // value 2
 }

 int main()
 {
display(firstDay(2));
return 0;
 }

如果我只编写一个cout,那么它可以工作并打印正确的值如果我使用多个cout那么它就无法打印正确的值。

1 个答案:

答案 0 :(得分:0)

firstDay返回指向函数内声明的数组的指针;函数返回后,此指针无效,您尝试取消引用它会导致未定义的行为。