C语言中有多种语句,以下是一些常见的语句及其详细解释:
1. 声明语句(Declaration Statements):用于声明变量、函数或其他实体。
- 变量声明:
int a;
声明一个整型变量a。 - 函数声明:
void func();
声明一个无返回值的函数func。 - 数组声明:
int arr[10];
声明一个包含10个整型元素的数组arr。 - 结构体声明:
struct { int x; float y; } point;
声明一个名为point的结构体,包含两个成员x和y。
2. 赋值语句(Assignment Statements):用于给变量赋值。
- 简单赋值:
a = 5;
将整数5赋值给变量a。 - 复合赋值:
a += 5;
将a的值增加5。 - 指针赋值:
int *p = &a;
将变量a的地址赋值给指针p。
3. 控制流语句(Control Flow Statements):用于控制程序的执行流程。
- if语句:
if (condition) { statement; }
如果条件为真,执行statement。 - if-else语句:
if (condition) { statement1; } else { statement2; }
如果条件为真,执行statement1,否则执行statement2。 - switch语句:
switch (expression) { case value1: statement1; break; case value2: statement2; break; ... default: statementN; }
根据表达式的值执行相应的case分支,如果没有匹配的case,执行default分支。 - for循环:
for (initialization; condition; update) { statement; }
初始化变量,当条件为真时执行statement,更新变量。 - while循环:
while (condition) { statement; }
当条件为真时,重复执行statement。 - do-while循环:
do { statement; } while (condition);
先执行statement,然后检查条件,如果为真,继续执行statement。 - break语句:用于跳出当前循环或switch语句。
- continue语句:跳过当前循环的剩余部分,进入下一次循环。
- goto语句:无条件跳转到指定的标签位置。
4. 循环控制语句(Loop Control Statements):用于控制循环的执行次数或跳过某些迭代。
- for循环中的continue和break语句:在for循环中,可以使用continue跳过当前迭代,使用break跳出整个循环。
- while循环中的continue和break语句:在while循环中,可以使用continue跳过当前迭代,使用break跳出整个循环。
- do-while循环中的continue和break语句:在do-while循环中,可以使用continue跳过当前迭代,使用break跳出整个循环。
5. 跳转语句(Jump Statements):用于无条件跳转到指定的标签位置。
- goto语句:
goto label;
无条件跳转到名为label的位置。 - return语句:用于从函数中返回。
6. 输入输出语句(Input/Output Statements):用于读取用户输入或将结果输出到屏幕或文件。
- scanf函数:
scanf("%d", &a);
从标准输入读取一个整数并存储到变量a中。 - printf函数:
printf("%d", a);
将变量a的值输出到标准输出。 - fprintf函数:
fprintf(file, "%d", a);
将变量a的值输出到指定的文件。 - getchar函数:
getchar();
从标准输入读取一个字符并丢弃。 - putchar函数:
putchar(c);
将字符c输出到标准输出。 - fgetc函数:
fgetc(file);
从指定的文件读取一个字符并返回。 - fputc函数:
fputc(c, file);
将字符c写入到指定的文件。
7. 宏定义(Macro Definitions):用于定义宏常量或宏函数。
- 宏常量:
#define PI 3.14159
定义一个名为PI的宏常量,值为3.14159。 - 宏函数:
#define SQUARE(x) ((x) * (x))
定义一个名为SQUARE的宏函数,计算x的平方。
8. 条件编译指令(Conditional Compilation Directives):用于根据编译时的特定条件选择性地编译代码块。
- #ifdef指令:如果宏已定义,则编译后面的代码块。
- #ifndef指令:如果宏未定义,则编译后面的代码块。
- #if指令:如果条件为真,则编译后面的代码块。
- #elif指令:如果前面的条件为假,且后面的条件为真,则编译后面的代码块。
- #else指令:如果前面的所有条件都为假,则编译后面的代码块。
- #endif指令:结束条件编译指令。
9. C预处理器指令(C Preprocessor Directives):用于在编译之前对源代码进行预处理操作。
- #include指令:包含指定的头文件。
- #define指令:定义宏常量或宏函数。
- #undef指令:取消已定义的宏常量或宏函数的定义。
- #ifdef指令、#ifndef指令、#if指令、#elif指令、#else指令、#endif指令:条件编译指令。
- #pragma指令:用于向编译器发送特定的命令或设置特定的选项。
10. C库函数(C Library Functions):C语言提供了许多内置的库函数,用于实现各种功能,如字符串处理、数学运算、内存管理等。以下是一些常用的库函数及其用法示例:
- strlen函数:计算字符串的长度(不包括空字符)。例如,`size_t len = strlen("Hello");`。
- strcpy函数:复制字符串的内容(包括空字符)。例如,`char src[] = "Hello"; char dest[10]; strcpy(dest, src);`。
- strcat函数:连接两个字符串的内容(包括空字符)。例如,`char src[] = "Hello"; char dest[] = " World"; strcat(dest, src);`。
- strchr函数:查找指定字符在字符串中首次出现的位置(包括空字符)。例如,`char *ptr = strchr("Hello", 'e');`。
- atoi函数:将字符串转换为整数。例如,`int num = atoi("123");`。
- atof函数:将字符串转换为浮点数。例如,`float fnum = atof("3.14");`。
- malloc函数:分配指定字节数的内存空间并返回其首地址。例如,`int *ptr = (int *)malloc(10 * sizeof(int));`。
- free函数:释放已分配的内存空间。例如,`free(ptr);`。