C语言是一种强大的、基础的编程语言,被广泛用于软件开发、系统编程以及各种嵌入式领域。本课程笔记主要关注C语言中的数据类型、运算符与表达式,以及输入输出函数`printf()`和`scanf()`的使用。
1. **数据类型**:
C语言提供了多种数据类型,包括基本类型(如`int`、`char`、`float`、`double`等)、复合类型(如`struct`结构体和`union`联合体)、枚举类型`enum`以及指针类型`*`。数据类型的选择直接影响着变量存储空间的大小和数值范围,因此在声明变量时需根据实际需求选择合适的类型。
2. **运算符与表达式**:
C语言支持算术运算符(如+、-、*、/、%)、关系运算符(如<、>、==、!=)、逻辑运算符(如&&、||、!)等。表达式是运算符和变量组合而成的,它们的结果可以是某个特定的值,也可以是布尔值(真或假)。在`printf()`函数中,可以使用表达式来输出变量的值。
3. **`printf()`函数**:
`printf()`是C语言的标准输出函数,用于将数据按照指定格式输出到屏幕。其基本语法为`printf("格式字符串", 输出项...)`。格式字符串中,`%`后的格式字符如`d`(十进制整数)、`f`(浮点数)、`s`(字符串)等与输出项一一对应。需要注意的是,格式说明符必须按照从左到右的顺序与输出项匹配,否则会导致错误。例如,错误示例`printf("str=%s, f=%d, i=%f\n", "Internet", 1.0 / 2.0, 3 + 5, "CHINA");`中,格式说明符与输出项的对应关系混乱。
4. **格式字符的大小写**:
对于`printf()`中的格式字符,`x`、`e`、`g`可以用小写或大写,大写表示输出的数据中数字部分使用大写字符。而其他格式字符,如`f`,必须使用小写。例如,`%F`是不正确的,应使用`%f`。
5. **`scanf()`函数**:
`scanf()`是C语言的格式化输入函数,它从标准输入(通常是键盘)读取数据。基本语法为`scanf("格式字符串", 输入项首地址表)`。格式字符串中的格式指示符与`printf()`类似,但空白字符在这里起到分隔输入数据的作用。输入项首地址表是需要接收输入的变量的地址。使用`&`运算符获取变量的地址。
6. **`scanf()`的格式指示符**:
- 格式字符如`d`(十进制整数)、`o`(八进制整数)、`x`(十六进制整数)、`u`(无符号整数)、`c`(单个字符)、`s`(字符串)、`f`(浮点数)、`e`(科学计数法表示的浮点数)、`g`(自动选择`e`或`f`)。
- 长度修饰符如`l`或`hh`,用来指定数据类型为长整型或短整型。
- 域宽`n`指定输入数据的宽度,超出的部分会被忽略。例如,`scanf("%3c%3c",&ch1,&ch2);`会读取3个字符给`ch1`,再读取3个字符给`ch2`。
- 赋值抑制字符`*`,使得输入的数据不赋值给相应的变量。
通过熟练掌握这些基础知识,开发者能够有效地进行C语言程序设计,同时注意安全问题,避免因格式错误、类型不匹配等原因导致的程序异常。在实际编程中,正确使用`printf()`和`scanf()`能够提高代码的可读性和效率。