Tag: 默认值

变量默认值

我对C编程中的一些基本理论感到困惑: 不同数据类型的变量的默认值是什么? 示例:如果我按照标准C手册声明如下结果可能是由传奇Dennis Ritchie博士记录的结果? int x; printf(“%d”,x); 我知道一些GCC编译器将打印0和一些打印垃圾值。 这取决于编译器。 请根据Dennis Ritchie C编程文档给我一个独特的答案。 同上,请给我回答float,char,double,string,array和pointer。 如果我声明并打印指针如下: int *pt; printf(“%d”,pt); 什么将在屏幕上打印? 我使用了MinGW GCCcompiler版本3.4.2,并且我获得了垃圾值。 请帮助我解决这些困惑。 谢谢。

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

我正在阅读nginx的源代码并发现它没有初始化许多数值变量,包括ngx_int_t ngx_last_process; ,这里ngx_int_t定义为long int #if 0 ngx_last_process = 0; #endif 那么@Igor Sysoev认为没有必要进行初始化? 但在程序中它假定默认值为0 : for (s = 0; s < ngx_last_process; s++) { if (ngx_processes[s].pid == -1) { break; } } 是否保证未初始化的变量在c中将具有0值?