#include <stdio.h>
#include <string.h>
#include "prac.h"
#define MYNAME "Butter"
int main() {
int numberOfKids;
int weight;
int shirt;
printf("If I eat a Watermelon I will weigh %d lbs \n", weight + numberOfKids+ shirt );
return 0;
}
我编译并运行程序,结果为1;虽然我预计它是0.当我单独检查每个变量的值时,权重变量的值是1.有人可以解释为什么特定变量结果不是0吗?我是C的新手,想要尝试基础知识,以便更深入地了解C的细微差别。任何帮助都将受到赞赏。
答案 0 :(得分:5)
默认情况下,C中函数内的变量不保证设置为任何值。在内存中,最后存储的内容(可能不会被刷新/擦除为0)将是int初始化的内容。
中得到了解答编辑:正如chux所述,如果未给出初始值,则本地静态变量将初始化为0。还涉及Is un-initialized integer always default to 0 in c?