c - 用 0 初始化整数与不在 C 中初始化它

标签 c int

int variable;int variable = 0; 有什么区别?我见过它们都被使用过,如果我没记错的话,是同一作者在同一个文件中使用的。

据我所知,它们是相同的:

$ cat integers.c
#include <stdio.h>

int main(void) {
    int patty;
    int tim = 0;
    printf("Patty: %d\nTim: %d\n", patty, tim);
}
$ gcc integers.c -o integers
$ ./integers
Patty: 0
Tim: 0

这也适用于其他变量类型:char *variable;char *variable = NULL; 之间有什么区别?

最佳答案

As far as I can tell, they're the same

不,他们不是。访问 patty 是未定义的行为,因为它没有被初始化。你只是碰巧得到了相同的结果。如果 patty 是全局的,那么它将被默认初始化(0)。

关于c - 用 0 初始化整数与不在 C 中初始化它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51334957/

相关文章:

python - 各向异性扩散二维图像

在 C 中创建具有预定义长度的字符串数组

arrays - 如何确定 C 中数组的大小?

ios - 查找searBar.text是否包含整数字符串?

python - 将日期时间值转换为整数

c - 在循环中将整数作为字符串附加到 char[]

java - Java 无法取消引用 Int

C - 为什么在使用 uint64_t 计数器时 for 循环会卡住,而 while 循环却不会?

c 定义多行宏?

string - 在 Go 中将 bigint 转换为字符串