staticについて
Q&A
以下のプログラムについて。
関数内のvにstaticをつけるだけでなぜうまく出力されるのでしょうか?よくわかりません。
#include <stdio.h>
int *getdata(void)
{
static int v[] = { 10, 20, 30, 0 };
return v;
}
int main(void)
{
int *p = getdata();
while (*p != 0) {
printf("%d\n", *p);
p++;
}
}
0