来自C 的指针数组的打印值

Printing Value From Pointer Array in C++

本文关键字:打印 数组 指针 来自      更新时间:2023-10-16

这是一个代码,它仅打印单个值,如果我想打印整个数组,则无法正常工作。

#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,则无法打印正确的值。

firstDay正在将指针返回到函数内声明的数组中;该指针返回后立即无效,而您的尝试将导致不确定的行为。