#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;
}
Run Code Online (Sandbox Code Playgroud)
我编译并运行程序,结果是1; 虽然我预计它是0.当我单独检查每个变量的值时,权重变量的值是1.有人可以解释为什么特定变量结果不是0吗?我是C的新手,想要尝试基础知识,以便更深入地了解C的细微差别.任何帮助都将受到赞赏.
小智 5
默认情况下,C中函数内的变量不保证设置为任何值.在内存中,最后存储的内容(可能不会被刷新/擦除为0)将是int初始化的内容.
编辑:正如chux所述,如果未给出初始值,则将局部静态变量初始化为0.还包括未初始化的整数在c中始终默认为0吗?