- C语言复习
- 1 数据类型与关键字
- 1.1 数据类型
- 1.2 关键字
- 2 输入与输出
- 2.1 输入函数
- 2.2 输出函数
- 2.3 文件输入和输出
- 3 运算符与表达式
- 3.1 运算符
- 3.2 表达式
- 4 语句结构
- 4.1 选择结构
- 4.2 循环结构
- 4.3 break与continue
- 5 函数
- 5.1 函数的定义、声明和调用
- 5.2 变量
- 5.3 main函数
- 5.4 预定义函数
- 6 数组
- 6.1 数组的概念
- 6.2 数组定义和初始化
- 6.3 字符串、字符数组、字符串数组
- 7 指针
- 8 结构体、共用体、枚举
- 8.1 结构体
- 8.2 共用体
- 8.3 枚举
- 9 文件操作
- 9.1 文件概念
- 9.2 文件操作
- 10 预处理
- 10.1 预处理概念
- 10.2 预处理指令与使用
- 11 多文件编程
- 1 数据类型与关键字
C语言复习
1 数据类型与关键字
1.1 数据类型
- 基本数据类型
- 整型(Integer Types): 用于存储整数值。主要包括int、short、long等不同变体。
- 字符型(Character Type): 用于存储单个字符。通常使用char。
- 浮点型(Floating-Point Types): 用于存储浮点数(带有小数点的数字)。包括float和double。
- 布尔型(Boolean Type): 用于表示真(1)或假(0)值。C99引入了_Bool类型。
- 复合数据类型
- 数组(Array): 一组具有相同数据类型的元素,通过索引访问。
- 指针(Pointer): 存储变量的内存地址,用于间接访问变量的值。指针还可以用于动态内存分配。
- 结构体(Structure): 允许将不同数据类型的成员组合在一起,创建一个自定义的复合数据类型。
- 联合(Union): 类似于结构体,但联合的所有成员共享同一块内存,只能同时存储其中一个成员的值。
- 枚举(Enumeration): 允许定义一组具名的整数常数,以提高代码的可读性。
- typedef: 用于创建已有数据类型的别名,使代码更加清晰。
32位操作系统下常见编译器下的数据类型大小及表示的数据范围:
类型名称 | 类型关键字 | 占字节数 | 其他叫法 | 表示的数据范围 |
---|---|---|---|---|
字符型 | char | 1 | signed char | -128 ~ 127 |
无符号字符型 | unsigned char | 1 | none | 0 ~ 255 |
整型 | int | 4 | signed int | -2,147,483,648 ~ 2,147,483,647 |
无符号整型 | unsigned int | 4 | unsigned | 0 ~ 4,294,967,295 |
短整型 | short | 2 | short int | -32,768 ~ 32,767 |
无符号短整型 | unsigned short | 2 | unsigned short int | 0 ~ 65,535 |
长整型 | long | 4 | long int | -2,147,483,648 ~ 2,147,483,647 |
无符号长整型 | unsigned long | 4 | unsigned long | 0 ~ 4,294,967,295 |
单精度浮点数 | float | 4 | none | 3.4E +/- 38 (7 digits) |
双精度浮点数 | double | 8 | none | 1.7E +/- 308 (15 digits) |
长双精度浮点数 | long double | 10 | none | 1.2E +/- 4932 (19 digits) |
长整型 | long long | 8 | __int64 | -9223372036854775808~9223372036854775808 |
1.2 关键字
1.自动变量类型关键字:
auto
:用于声明自动存储持续时间的变量。
2.控制流关键字:
if
:用于条件语句,执行基于条件的代码块。else
:用于条件语句中的可选分支,当条件不满足时执行。switch
:用于多重选择语句,根据表达式的值跳转到不同的分支。case
:用于在switch
语句中标识不同的分支。default
:switch
语句中的默认分支。
3.循环关键字:
for
:用于循环语句,指定初始化、条件和迭代表达式。while
:用于循环语句,根据条件循环执行代码块。do
:用于循环语句,先执行代码块,然后根据条件继续执行。
4.跳转关键字:
goto
:用于无条件跳转到指定的标签位置。
5.函数关键字:
return
:用于从函数中返回值。void
:用于声明函数不返回值。
6.存储类关键字:
auto
:用于声明自动存储类别的变量(已在前面提到)。register
:用于声明寄存器存储类别的变量。static
:用于声明静态存储类别的变量和函数。extern
:用于声明外部链接存储类别的变量和函数。
7.数据类型关键字:
int
:用于声明整型数据类型。char
:用于声明字符数据类型。float
:用于声明单精度浮点数据类型。double
:用于声明双精度浮点数据类型。short
:用于声明短整型数据类型。long
:用于声明长整型数据类型。signed
:用于声明有符号整数数据类型。unsigned
:用于声明无符号整数数据类型。
8.其他关键字:
sizeof
:用于获取数据类型或表达式的大小(字节数)。typedef
:用于创建自定义数据类型的别名。enum
:用于声明枚举类型。struct
:用于声明结构体类型。union
:用于声明联合类型。const
:用于声明常量。volatile
:用于声明易失变量,表示可能会被意外更改。static
:用于声明静态成员或局部变量。
2 输入与输出
2.1 输入函数
1.scanf
用于从标准输入(通常是键盘)读取数据。它可以读取不同类型的数据,如整数、浮点数和字符串。格式化字符串指定了读取的数据类型。
例如:
int age;
printf("Enter your age: ");
scanf("%d", &age);
2.getchar
输入单个字符,保存到字符变量中。
3.gets
输入一行数据,保存到字符串变量中。
2.2 输出函数
1.printf
用于将格式化数据输出到标准输出(通常是屏幕)。可以使用格式化字符串指定输出的格式和内容。
例如:
int num = 37;
printf("The number is: %d\n", num);
常见的输出控制符:
(1) %d
:以十进制形式输出整数。
示例:printf("%d", 42); // 输出:42
(2) %f
:以浮点数形式输出实数(默认保留6位小数)。
示例:printf("%f", 3.14159); // 输出:3.141590
(3) %c
:输出单个字符。
示例:printf("%c", 'A'); // 输出:A
(4) %s
:输出字符串。
示例:printf("%s", "Hello, World!"); // 输出:Hello, World!
(5) %o
:以八进制形式输出整数。
示例:printf("%o", 18); // 输出:22
(6) %x
或 %X
:以十六进制形式输出整数,%x
输出小写字母,%X
输出大写字母。
示例:printf("%x", 255); // 输出:ff
(7) %u
:以无符号十进制形式输出整数。
示例:printf("%u", 123); // 输出:123
(8) %e
或 %E
:以指数形式输出浮点数,%e
输出小写字母,%E
输出大写字母。
示例:printf("%e", 0.00123); // 输出:1.230000e-03
(9) %g
或 %G
:以%f 或 %e 格式输出浮点数,视数值大小自动选择。
示例:printf("%g", 123456.789); // 输出:123457
(10) %%
:输出百分号 %
字符。
示例:printf("100%%"); // 输出:100%
这些输出控制符可以与一些修饰符一起使用,例如用于指定字段宽度、精度等。例如:
%5d
:输出整数,至少占5个字符宽度。%.2f
:输出浮点数,保留两位小数。%10s
:输出字符串,至少占10个字符宽度。
2.putchar
输出单个字符。
3.puts
输出字符串。
2.3 文件输入和输出
1.文件打开函数
fopen
:用于打开文件,并返回一个文件指针,供后续操作使用。
2.文件读取函数
fscanf
:类似于scanf,但从文件中读取数据。fgets
:从文件中读取一行文本。
3.文件写入函数
fprintf
:类似于printf,但将输出写入文件。fputs
:将文本写入文件。fputc
:写入单个字符到文件。
4.文件关闭函数
fclose
:用于关闭已打开的文件。
以下是一个读取文件并将内容输出到屏幕的简单示例:
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "r"); // 打开文件只读模式
if (file == NULL) {
printf("Failed to open the file.\n");
return 1;
}
char buffer[100];
while (fgets(buffer, sizeof(buffer), file) != NULL) {
printf("%s", buffer);
}
fclose(file); // 关闭文件
return 0;
}
3 运算符与表达式
3.1 运算符
1. 算术运算符:
+
:加法运算符,用于相加两个操作数。-
:减法运算符,用于从第一个操作数中减去第二个操作数。*
:乘法运算符,用于将两个操作数相乘。/
:除法运算符,用于将第一个操作数除以第二个操作数。%
:取余运算符,用于计算除法的余数部分。++
:自增运算符,将操作数的值增加1。--
:自减运算符,将操作数的值减少1。
2. 关系运算符:
==
:等于运算符,检查两个操作数是否相等。!=
:不等于运算符,检查两个操作数是否不相等。<
:小于运算符,检查第一个操作数是否小于第二个操作数。>
:大于运算符,检查第一个操作数是否大于第二个操作数。<=
:小于等于运算符,检查第一个操作数是否小于等于第二个操作数。>=
:大于等于运算符,检查第一个操作数是否大于等于第二个操作数。
3. 逻辑运算符:
&&
:逻辑与运算符,用于检查两个条件是否同时为真。||
:逻辑或运算符,用于检查两个条件是否至少一个为真。!
:逻辑非运算符,用于取反一个条件的值。
4. 赋值运算符:
=
:赋值运算符,将右侧的值赋给左侧的变量。+=
、-=
、*=
、/=
、%=
、++=
、--=
等:复合赋值运算符,用于在赋值的同时进行其他运算。
5. 位运算符:
&
:按位与运算符,对两个操作数的每一位进行与操作。|
:按位或运算符,对两个操作数的每一位进行或操作。^
:按位异或运算符,对两个操作数的每一位进行异或操作。~
:按位取反运算符,对操作数的每一位取反。
6. 移位运算符:
<<
:左移运算符,将第一个操作数的二进制表示左移指定的位数。>>
:右移运算符,将第一个操作数的二进制表示右移指定的位数。
7. 条件运算符:
? :
:条件运算符(三元运算符),根据条件选择两个操作数中的一个进行返回。
8. 逗号运算符:
,
:逗号运算符,用于分隔多个表达式,返回最后一个表达式的值。
9. sizeof
sizeof
:以字节为单位返回某操作数的大小,用于求某一类型变量的长度。其运算对象可以是任何数据类型或变量。
3.2 表达式
在C语言中,表达式是由操作数和运算符组成的组合,可以执行各种计算和操作。表达式的结果可以是一个值,一个变量,或者一个组合的值。表达式可以包含常量、变量、运算符和函数调用等。
例如:
3+2
a=(2+b/3)/5
x=i++
m=2*5
4 语句结构
4.1 选择结构
1.if else
例如:
4 语句结构
4.1 选择结构
1.if else
例如:
2.switch case
例如:
#include <stdio.h>
int main() {
int choice;
printf("Choose an option:\n");
printf("1. Start\n");
printf("2. Pause\n");
printf("3. Stop\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Starting...\n");
break;
case 2:
printf("Pausing...\n");
break;
case 3:
printf("Stopping...\n");
break;
default:
printf("Invalid choice.\n");
break;
}
return 0;
}
感谢您的来访,获取更多精彩文章请收藏本站。

暂无评论内容