第二次小测的一些小问题
-
C程序的流程:预处理-编译-链接-加载运行。变量的初始化都在加载运行这一部分。特别地,全局变量的初始化在调用main函数之前。
-
%x表示用小写字母输出16进制整数,%X表示用大写字母输出16进制整数,%o表示输出8进制整数,%O没有含义。需要注意,上述三种方式,都不会添加16进制的0x前缀和8进制的0前缀。但是加上#就会添加对应的前缀,%#x会添加0x,%#X会添加0X,%#x会添加0。 -
赋值运算符是右结合。(
=,*=这种) -
只有在初始化数组的时候提供初始化列表,才能省略第一维(最左边的维度)。其它维度任何时候都不能省略。
-
scanf("%d", &x);,即使输入的是021,也是忽略前缀0,这就是十进制的21,不是八进制。 -
虽然说历史上函数原型和函数原型不是一个东西,但是貌似这门课可以认为函数原型就是指函数声明。课件上说的是函数原型声明。
-
补码最主要的作用是:简化加减法运算。
-
静态变量
static:
-
静态全局变量:作用域限制在所在源文件中,别的文件无法通过
extern关键字来访问它。和其他全局变量一样,在调用main函数之前就初始化了。 -
静态局部变量:只初始化一次,但作用域不变,不会随着函数调用结束销毁。可以用来实现有记忆的函数。但是它也是在第一次执行到它的定义语句时初始化。
-
extern用于声明,而不是定义,也就是并不会创建一个新的变量/函数。 -
如果想要实验变量初始化的时机,可以写
int a = printf("a\n");这种语句。 -
C语言可以同时编译多个文件,但是有且只能有一个main函数,dev里面要创建一个项目才能编译多个文件。

浙公网安备 33010602011771号