1.printf函数是一个标准库函数,能够以精确的格式输出程序运算的结果。
- printf函数的调用格式为:
- printf("格式控制字符串",输出项列表);
- 例如:
printf("%d,%d",a, b);
2.scanf函数是一个阻塞式函数
- 程序会停在scanf函数出现的地方, 直到接收到数据才会执行后面的代码
- scanf函数原型包含在标准输入输出头文件“stdio.h”中,用于接收键盘输入的内容。
- 格式:scanf("格式控制字符串",输入项地址列表);
- 例如: scanf("%d", &num);
- 格式控制字符串:
- 规定数据输入的格式,由格式控制符和普通字符组成,格式控制符和百分号(%)一起使用, 用来说明输入数据的数据类型(格式字符)。
- 输入项地址列表:
- 需要接收数据的变量地址,这些输入项与格式控制字符串在类型和数量上要对应,当有多个 输入项时,各个地址名之间以逗号“,”分隔。输入格式和变量类型要保持一致。
3.
-
continue语句的作用是跳过循环体中剩余的语句而继续下一次
4.static和extern关键字-对变量的作用
本小节知识点:
- 【掌握】static 与 extern对局部变量的作用
- 【掌握】static 全局变量的作用
- 【掌握】extern对全局变量的作用
1.static 与 extern对局部变量的作用
-
static对局部变量的作用
- 延长局部变量的生命周期,从程序启动到程序退出,但是它并没有改变变量的作用域
- 定义变量的代码在整个程序运行期间仅仅会执行一次
-
extern用在函数内部
- 不是定义局部变量,它用在函数内部是声明一个全局变量
2.static 全局变量的作用
-
全局变量分类:
- 内部变量:只能在本文件中访问的变量
- 外部变量:可以在其他文件中访问的变量,默认所有全局变量都是外部变量
-
static对全局变量的作用
- 声明一个内部变量
static int a;
- 定义一个内部变量
static int a = 10;
- 声明一个内部变量
-
由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以 避免在其它源文件中引起错误。
3.extern对全局变量的作用
-
extern作用
- 完整声明一个外部变量
extern int a;
- 完整定义一个外部变量
extern int a = 10;
- 完整声明一个外部变量
-
如果声明的时候没有写extern那系统会自动定义这个变量,并将其初始化为0
- 如果声明的时候写extern了,那系统不会自动定义这个变量。
5.typedef基本概念
- C语言不仅?供了丰富的数据类型,而且还允许由用户自己定义类型说明符,也就是说允许由用户为数据类型取“别名”。
2.typedef语法格式
typedef 原类型名 新类型名;
+ 其中原类型名中含有定义部分,新类型名一般用大写表示,以便于区别。
+ 有时也可用宏定义来代替typedef的功能,但是宏定义是由预处理完成的,而typedef则是在编译 时完成的,后者更为灵活方便。
6.const关键字
如果const写在指针类型的左边, 那么意味着指向的内存空间中的值不能改变, 但是指针的指向可以改变
如果const写在指针的数据类型和*号之间, 那么意味着指向的内存空间中的值不能改变, 但是指针的指向可以改变
如果const写在指针的右边(数据类型 * const), 那么意味着指针的指向不可以改变, 但是指针指向的存储空间中的值可以改变
规律:
如果const写在指针变量名的旁边, 那么指针的指向不能变, 而指向的内存空间的值可以变
如果const写在数据类型的左边或者右边, 那么指针的指向可以改变, 但是指向的内存空间的值不能改变
7.static对局部变量的作用
当使用static来修饰局部变量, 那么会延长局部变量的生命周期, 并且会更改局部变量存储的位置 , 将局部变量从栈转移到静态区中
只要使用static修改局部变量之后, 当执行到定义局部变量的代码就会分配存储空间, 但是只有程序结束才会释放该存储空间
应用场景":
当某个方法的调用频率非常高, 而该方法中更有些变量的值是固定不变的
那么这个时候就可以使用static来修饰该变量, 让该变量只开辟一次存储空间
这样可以提高程序的效率和性能