相关疑难解决方法(0)

131
推荐指数
4
解决办法
12万
查看次数

未初始化的整数在c中始终默认为0吗?

我正在阅读nginx的源代码并发现它没有初始化许多数值变量,包括ngx_int_t ngx_last_process;,这里ngx_int_t定义为long int

#if 0
    ngx_last_process = 0;
#endif
Run Code Online (Sandbox Code Playgroud)

那么@Igor Sysoev认为没有必要进行初始化?

但是在程序中它假定默认值是0:

    for (s = 0; s < ngx_last_process; s++) {
        if (ngx_processes[s].pid == -1) {
            break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

是否保证未初始化的变量0在c中具有价值?

c initialization default-value

22
推荐指数
3
解决办法
2万
查看次数

int 数组元素未在 C 中初始化为零

我在 C 中创建了一个包含 10 个元素的数组,main并仅为某些元素声明了值。打印出数组时,我注意到其中一个未受影响的元素没有初始化为零。相反,它每次都被初始化为一个不同的大值(即1491389216)。然后我注释掉了我的所有代码,并像我最初声明的那样离开了数组。

运行代码时,数组的前 8 个元素被初始化为零,数组中的第 9 个元素被初始化为一个大值(如1491389216),每次都改变,最后一个元素始终被初始化为相同的非-零号。

有谁知道为什么会这样?

c arrays int initialization

2
推荐指数
1
解决办法
5011
查看次数

标签 统计

c ×3

initialization ×3

arrays ×1

declaration ×1

default-value ×1

int ×1