C语言复习提纲整理目录
1. C语言关键字:
2.合法转义字符:
3. e代表10的指数
4.在数字前加0表示是八儿进...
5. int范围
6.输出格式符
7. Goto语句
8.格式控制
9. &&和川
10.真假
11. Switch case的default..
12. Strcpy函数
13. Break和continue语句
14.函数缺省类型
15. extern
16. static
17.二维指针
18.位运算&
19. fopen函数
20. fscanf函数
21. fseek函数
22. ferror函数原型
23. *p=&a,*p=a和p=&a
### C语言复习提纲知识点详解
#### 1. C语言关键字
C语言中包含了一系列预定义的关键字,这些关键字在编程中具有特定的意义,并且不能用作标识符(如变量名)。以下是一些常见的C语言关键字及其用途:
- **auto**:用于声明局部变量,并表明该变量具有自动存储期。
- **break**:用于提前终止循环或者switch语句中的case分支。
- **case**:用于switch语句中指定可能的匹配值。
- **char**:用于声明字符类型的变量。
- **const**:用于声明常量或者定义不可修改的变量。
- **continue**:用于跳过当前循环体中的剩余部分并继续下一次迭代。
- **default**:用于switch语句中指定默认执行的代码块。
- **do**:与while一起构成循环结构。
- **double**:用于声明双精度浮点类型的变量。
- **else**:与if语句一起使用,指定当if条件不满足时执行的代码。
- **enum**:用于定义枚举类型。
- **extern**:用于声明变量或函数的外部链接属性。
- **float**:用于声明单精度浮点类型的变量。
- **for**:用于创建循环结构。
- **goto**:提供非局部跳转功能。
- **if**:用于基于条件执行不同的代码块。
- **int**:用于声明整型变量。
- **long**:用于声明长整型变量。
- **register**:建议编译器将变量存储在寄存器中。
- **return**:用于从函数返回值或退出函数。
- **short**:用于声明短整型变量。
- **signed**:用于声明带符号整数类型。
- **sizeof**:用于计算数据类型或变量的字节数。
- **static**:用于声明具有静态存储期的变量。
- **struct**:用于定义结构体类型。
- **switch**:用于根据不同的条件执行不同的代码块。
- **typedef**:用于创建新的类型名。
- **union**:用于定义共用体类型。
- **unsigned**:用于声明无符号整数类型。
- **void**:用于声明无类型或未指定类型的函数参数。
- **volatile**:用于声明其值可能会因外界因素而改变的变量。
- **while**:用于创建循环结构。
此外,还有一些扩展的关键字,如:
- **inline**:用于建议编译器内联函数调用。
- **restrict**:用于指示指针不与其他指针重叠。
- **_Bool**:用于声明布尔类型的变量。
- **_Complex**:用于声明复数类型。
- **_Imaginary**:用于声明虚数类型。
- **_Alignas**:用于指定对齐要求。
- **_Alignof**:用于获取类型的对齐要求。
- **_Atomic**:用于声明原子类型。
- **_Static_assert**:用于静态断言。
- **_Noreturn**:用于声明不会返回的函数。
#### 2. 合法转义字符
转义字符在字符串中用于特殊的目的,例如打印特定的控制字符。以下是一些合法的转义字符及其用途:
- `\a`:响铃(Bell)
- `\b`:退格(Backspace)
- `\f`:换页(Form Feed)
- `\n`:换行(New Line)
- `\r`:回车(Carriage Return)
- `\t`:水平制表(Horizontal Tab)
- `\v`:垂直制表(Vertical Tab)
- `\\`:反斜线字符
- `\'`:单引号字符
- `\"`:双引号字符
- `\0`:空字符(NULL)
- `\ddd`:三位八进制值对应的ASCII字符
- `\xhh`:两位十六进制值对应的ASCII字符
#### 3. E代表10的指数
在C语言中,`E`或`e`被用来表示科学记数法中的基数10的指数。例如,`3.0e2`表示3.0乘以10的2次方,即300。指数可以是正数也可以是负数,但不能是浮点数。
#### 4. 在数字前加0表示是八进制
在C语言中,如果一个整数前面加上0(零),则表示这是一个八进制数。例如,`011`实际上是十进制中的9。同样地,如果一个整数前面加上`0x`,则表示这是一个十六进制数。
#### 5. int范围
在C语言中,一个标准的`int`类型的变量通常占据32位系统中的4字节,其范围是-2147483648至2147483647。然而题目提到的是2字节的情况,这在某些平台中也是可能的,其范围为-32768至32767。
#### 6. 输出格式符
`printf`函数中的格式符用于指定输出的数据格式。例如,`%5s`中的数字5表示输出的字符串将占用5列空间。如果字符串长度大于5,则按原样输出;如果字符串长度小于5,则在左侧填充空格以达到5列。
#### 7. Goto语句
`goto`语句允许程序控制流非正常地跳转到标记的位置。虽然它提供了灵活性,但由于可能导致代码难以理解和维护,因此在结构化程序设计中应避免使用。
#### 8. 格式控制
格式控制主要用于`printf`等函数中,例如:
- `%d`:整型输出
- `%ld`:长整型输出
- `%o`:八进制整数输出
- `%x`:十六进制整数输出
- `%u`:无符号整数输出
- `%c`:单个字符输出
- `%s`:字符串输出
- `%f`:浮点数输出
- `%e`:科学记数法输出
- `%g`:自动选择合适的输出格式
#### 9. && 和 ||
这两个运算符分别表示逻辑与和逻辑或。`&&`和`||`运算符都是惰性求值的,这意味着一旦可以确定整个表达式的真假值,就会停止计算。例如,在表达式`(m=a>b)&&(n=c>d)`中,如果`a>b`为假,则整个表达式的结果就是假,因此不会计算`n=c>d`。
#### 10. 真假
在C语言中,任何非零值都被视为真,而0被视为假。
#### 11. Switch case 的 default
在`switch`语句中,`default`子句用于处理所有case之外的情况。如果没有`break`语句,则执行流程会继续向下执行下一个case。
#### 12. Strcpy函数
`strcpy`函数用于复制一个字符串到另一个字符串中。例如:
```c
char dest[10];
char src[] = "abcdef";
strcpy(dest, src);
```
这里需要注意的是,`dest`数组的大小应该足够大以容纳`src`字符串以及结束符`\0`。
#### 13. Break和continue语句
- `break`:用于提前退出循环或`switch`语句。
- `continue`:用于跳过当前循环中的剩余部分,直接进入下一次循环。
#### 14. 函数缺省类型
如果函数声明或定义中没有显式指定类型,默认类型为`int`。
#### 15. extern
`extern`关键字用于声明变量或函数是在其他文件中定义的。
#### 16. static
`static`关键字用于声明具有静态存储期的变量或函数。对于变量而言,意味着它在整个程序运行期间都存在,即使函数执行完毕也会保留其值。
#### 17. 二维指针
二维指针是指向指针的指针,常用于多维数组的处理。
#### 18. 位运算 &
位运算符`&`用于按位与操作,即将两个操作数的每一位进行与运算。
#### 19. fopen函数
`fopen`函数用于打开文件,其原型为:
```c
FILE* fopen(const char *filename, const char *mode);
```
#### 20. fscanf函数
`fscanf`函数用于从文件中读取格式化数据,其原型为:
```c
int fscanf(FILE *stream, const char *format, ...);
```
#### 21. fseek函数
`fseek`函数用于改变文件位置指针的位置,其原型为:
```c
int fseek(FILE *stream, long offset, int whence);
```
#### 22. ferror函数原型
`ferror`函数用于检测文件流是否发生了错误,其原型为:
```c
int ferror(FILE *stream);
```
#### 23. *p=&a, *p=a 和 p=&a
- `*p=&a`:这是不正确的语法,无法实现。
- `*p=a`:这是赋值操作,将`a`的值赋给指针`p`所指向的变量。
- `p=&a`:这是最常用的指针赋值操作,将变量`a`的地址赋给指针`p`。