【发布时间】:2014-06-24 00:27:20
【问题描述】:
我一直在尝试用 C 语言处理静态变量,所以我写了这个:
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
int *pointer;
void stat();
int main()
{
stat();
printf("%i", *pointer);
}
void stat()
{
int c = 2;
pointer = &c;
}
这确实有效并在命令行中显示 2,但我不明白为什么。 当函数 stat 退出时,int c 是否不复存在?那么指针指向什么?以及它如何保留整数的值?为什么我可以不在这里设置 int c 静态?
【问题讨论】:
-
c不再存在,但这并不意味着内存空间停止保存c包含的值。但你不能保证永远都是这样。pointer指向内存中的那个空间。