1 #include <stdio.h> 2 3 int main() 4 { 5 printf("Hello, World! "); 6 return 0; 7 }
1 #include <stdio.h> 2 3 int main(void) 4 { 5 printf("Hello, World! "); 6 return 0; 7 }
上面两段代码有什么区别?
main函数参数表不一样,第一个什么也没有,第二个有个void。
ANSI C中,如果声明空参数表,则必须使用关键字void进行显式声明。但为了和老版本的C语言程序兼容,ANSI C语言把空参数表看成老版本的C语言的声明方式,并且对参数表不再进行任何检查。
=======================分割线=======================
以上环境:win7 64位,VS2013。
====================分割线====================
默认情况下,外部变量和静态变量将被初始化为0。
未经显式初始化的自动变量的值为未定义值(即无效值)。
const限定符指定变量的值不能被修改,对数组而言,const限定符指定数组的所有元素的值都不能被修改。
===================分割线================
逻辑运算符&&与||有一些较为特殊的属性。由&&与||链接的表达式按从左往右的顺序进行求值,并且,在知道结果值为真或假后立即停止计算。
逻辑非运算符!的作用将非0操作数转换为0,将操作数0转换为1。
==================WTF=========================