C语言学习笔记:空语句、代码块、控制语句|“朝闻道”知识分享大赛

2301_80948168 2024-10-31 08:11:18

这是我参加朝闻道知识分享大赛的第六篇文章


C语言学习笔记:空语句、代码块、控制语句

在学习C语言的过程中,理解并掌握各种语句和代码结构对C语言学习者是至关重要的。本篇笔记将详细介绍C语言中的空语句、代码块以及控制语句,并配以示例和解释,以便我们新手能够深入理解并灵活运用。


目录

C语言学习笔记:空语句、代码块、控制语句

一、空语句

1. 空语句的定义

2. 空语句的用途

二、代码块

1. 代码块的定义

2. 代码块的作用

三、控制语句

1. 控制语句的分类

2. 顺序控制语句

3. 选择控制语句

3.1 if语句

3.2 if-else语句

3.3 switch语句

4. 循环控制语句

4.1 for循环

4.2 while循环

4.3 do-while循环

四、总结


一、空语句

1. 空语句的定义

空语句是C语言中最简单的语句,它不执行任何操作。空语句由一个单独的分号(;)组成。但在某些情况下,空语句可以作为一种占位符,使代码结构更加清晰。

2. 空语句的用途

  • 占位符:在编写代码时,有时需要预留一个位置,以便将来添加具体的操作。这时可以使用空语句作为占位符。
  • 语法要求:在某些语法结构中,需要有一个语句,但当前不需要执行任何操作。例如,在循环体中,如果不需要执行任何操作,可以使用空语句。

3. 示例

#include <stdio.h>  
  
int main() {  
    // 空语句作为占位符  
    ; // 这是一个空语句  
  
    // 在循环中使用空语句  
    for (int i = 0; i < 5; i++) {  
        ; // 循环体为空,只进行计数  
    }  
  
    printf("循环结束\n");  
    return 0;  
}

在这个示例中,第一个空语句作为占位符,没有实际作用。在for循环中,循环体为空,只进行计数操作。

二、代码块

1. 代码块的定义

代码块是由一对大括号({})括起来的语句集合。在C语言中,代码块通常用于定义函数体、循环体、条件语句的分支以及复合语句。

2. 代码块的作用

  • 作用域限定:代码块内部声明的变量具有局部作用域,只能在代码块内部访问。
  • 逻辑分组:将相关的语句组织在一起,形成一个逻辑单元。
  • 控制结构:在控制语句(如ifforwhile等)中,代码块用于定义执行体。

3. 示例


	#include <stdio.h> 

	


	int main() { 

	// 空语句作为占位符 

	; // 这是一个空语句 

	


	// 在循环中使用空语句 

	for (int i = 0; i < 5; i++) { 

	; // 循环体为空,只进行计数 

	} 

	


	printf("循环结束\n"); 

	return 0; 

	}
#include <stdio.h> 


int main() { 
int a = 10; 


// 函数体是一个代码块 
{ 
int b = 20; 
printf("在函数体中的代码块: a = %d, b = %d\n", a, b); 
} 


// if语句中的代码块 
if (a > 5) { 
printf("a 大于 5\n"); 
} 


// for循环中的代码块 
for (int i = 0; i < 3; i++) { 
printf("循环次数: %d\n", i); 
} 


// while循环中的代码块 
int count = 0; 
while (count < 2) { 
printf("while循环次数: %d\n", count); 
count++; 
} 


return 0; 
}

三、控制语句

在这个示例中,函数体、if语句、for循环和while循环都包含了代码块。每个代码块内部声明的变量(如bicount)都具有局部作用域,只能在各自的代码块内部访问。


1. 控制语句的分类

C语言中的控制语句分为以下几类:

  • 顺序控制语句:按照代码的顺序逐条执行。
  • 选择控制语句:根据条件选择执行不同的代码块。
  • 循环控制语句:重复执行某段代码,直到满足某个条件为止。

2. 顺序控制语句

顺序控制语句是C语言中最基本的语句,按照代码的顺序逐条执行。例如,赋值语句、函数调用语句等都属于顺序控制语句。

3. 选择控制语句

选择控制语句用于根据条件选择执行不同的代码块。C语言中常用的选择控制语句有if语句、if-else语句、switch语句等。

3.1 if语句

if语句用于根据条件判断执行某个代码块。如果条件为真(非零),则执行if语句后的代码块;否则,跳过该代码块。

示例


	#include <stdio.h> 

	


	int main() { 

	int num = 10; 

	


	if (num > 0) { 

	printf("num 是正数\n"); 

	} 

	


	return 0; 

	}

在这个示例中,由于num大于0,所以if语句后的代码块被执行,输出“num 是正数”。

3.2 if-else语句

if-else语句用于根据条件判断执行不同的代码块。如果条件为真,则执行if语句后的代码块;否则,执行else语句后的代码块。

示例


	#include <stdio.h> 

	


	int main() { 

	int num = -5; 

	


	if (num > 0) { 

	printf("num 是正数\n"); 

	} else { 

	printf("num 不是正数\n"); 

	} 

	


	return 0; 

	}

在这个示例中,由于num不大于0,所以else语句后的代码块被执行,输出“num 不是正数”。

3.3 switch语句

switch语句用于根据表达式的值选择执行不同的代码块。它通常用于处理多个分支的情况,比多个if-else语句更加简洁和高效。

示例


	#include <stdio.h> 

	


	int main() { 

	int grade = 'B'; 

	


	switch (grade) { 

	case 'A': 

	printf("优秀\n"); 

	break; 

	case 'B': 

	printf("良好\n"); 

	break; 

	case 'C': 

	printf("及格\n"); 

	break; 

	default: 

	printf("不及格\n"); 

	break; 

	} 

	


	return 0; 

	}

在这个示例中,由于grade的值为'B',所以执行case 'B':后的代码块,输出“良好”。

4. 循环控制语句

循环控制语句用于重复执行某段代码,直到满足某个条件为止。C语言中常用的循环控制语句有for循环、while循环和do-while循环。


4.1 for循环

for循环用于在给定范围内重复执行某段代码。它通常用于已知循环次数的情况。

示例


	#include <stdio.h> 

	


	int main() { 

	for (int i = 0; i < 5; i++) { 

	printf("i = %d\n", i); 

	} 

	


	return 0; 

	}

在这个示例中,for循环从i = 0开始,每次循环i的值增加1,直到i的值等于5时停止循环。

4.2 while循环

while循环用于在满足某个条件时重复执行某段代码。它通常用于未知循环次数但可以根据条件判断的情况。

示例

#include <stdio.h> 


int main() { 
int i = 0; 


while (i < 5) { 
printf("i = %d\n", i); 
i++; 
} 


return 0; 
}

4.3 do-while循环

在这个示例中,while循环在i < 5时重复执行,每次循环i的值增加1,直到i的值等于5时停止循环。

do-while循环与while循环类似,但它在每次循环结束时检查条件。这意味着do-while循环至少会执行一次,即使条件一开始就不满足。

示例


	#include <stdio.h> 

	


	int main() { 

	int i = 5; 

	


	do { 

	printf("i = %d\n", i); 

	i++; 

	} while (i < 5); 

	


	return 0; 

	}

在这个示例中,尽管初始时i的值等于5,不满足while条件,但do-while循环仍然会执行一次,输出“i = 5”。然后,由于i的值增加到了6,不满足条件,循环结束。

四、总结

本文详细介绍了C语言中的空语句、代码块以及控制语句。空语句虽然简单,但在某些情况下可以作为占位符,使代码结构更加清晰。代码块用于将相关的

...全文
569 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
1. C 语言中的指针和内存泄漏 5 2. C语言难点分析整理 10 3. C语言难点 18 4. C/C++实现冒泡排序算法 32 5. C++中指针和引用的区别 35 6. const char*, char const*, char*const的区别 36 7. C中可变参数函数实现 38 8. C程序内存中组成部分 41 9. C编程拾粹 42 10. C语言中实现数组的动态增长 44 11. C语言中的位运算 46 12. 浮点数的存储格式: 50 13. 位域 58 14. C语言函数二维数组传递方法 64 15. C语言复杂表达式的执行步骤 66 16. C语言字符串函数大全 68 17. C语言宏定义技巧 89 18. C语言实现动态数组 100 19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 23. C语言缺陷与陷阱(笔记) 119 24. C语言防止缓冲区溢出方法 126 25. C语言高效编程秘籍 128 26. C运算符优先级口诀 133 27. do/while(0)的妙用 134 28. exit()和return()的区别 140 29. exit子程序终止函数与return的差别 141 30. extern与static存储空间矛盾 145 31. PC-Lint与C\C++代码质量 147 32. spirntf函数使用大全 158 33. 二叉树的数据结构 167 34. 位运算应用口诀和实例 170 35. 内存对齐与ANSI C中struct内存布局 173 36. 冒泡和选择排序实现 180 37. 函数指针数组与返回数组指针的函数 186 38. 右左法则- 复杂指针解析 189 39. 回车和换行的区别 192 40. 堆和堆栈的区别 194 41. 堆和堆栈的区别 198 42. 如何写出专业的C头文件 202 43. 打造最快的Hash表 207 44. 指针与数组学习笔记 222 45. 数组不是指针 224 46. 标准C中字符串分割的方法 228 47. 汉诺塔源码 231 48. 洗牌算法 234 49. 深入理解C语言指针的奥秘 236 50. 游戏外挂的编写原理 254 51. 程序实例分析-为什么会陷入死循环 258 52. 空指针究竟指向了内存的哪个地方 260 53. 算术表达式的计算 265 54. 结构体对齐的具体含义 269 55. 连连看AI算法 274 56. 连连看寻路算法的思路 283 57. 重新认识:指向函数的指针 288 58. 链表的源码 291 59. 高质量的子程序 295 60. 高级C语言程序员测试必过的十六最佳题目+答案详解 297 61. C语言常见错误 320 62. 超强的指针学习笔记 325 63. 程序员之路──关于代码风格 343 64. 指针、结构体、联合体的安全规范 346 65. C指针讲解 352 66. 关于指向指针的指针 368 67. C/C++ 误区一:void main() 373 68. C/C++ 误区二:fflush(stdin) 376 69. C/C++ 误区三:强制转换 malloc() 的返回值 380 70. C/C++ 误区四:char c = getchar(); 381 71. C/C++ 误区五:检查 new 的返回值 383 72. C 是 C++ 的子集吗? 384 73. C和C++的区别是什么? 387 74. 无条件循环 388 75. 产生随机数的方法 389 76. 顺序表及其操作 390 77. 单链表的实现及其操作 391 78. 双向链表 395 79. 程序员数据结构笔记 399 80. Hashtable和HashMap的区别 408 81. hash 表学习笔记 410 82. C程序设计常用算法源代码 412 83. C语言有头结点链表的经典实现 419 84. C语言惠通面试题 428 85. C语言常用宏定义 450

1,040

社区成员

发帖
与我相关
我的任务
社区描述
中南民族大学CSDN高校俱乐部聚焦校内IT技术爱好者,通过构建系统化的内容和运营体系,旨在将中南民族大学CSDN社区变成校内最大的技术交流沟通平台。
经验分享 高校 湖北省·武汉市
社区管理员
  • c_university_1575
  • WhiteGlint666
  • wzh_scuec
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎各位加入中南民族大学&&CSDN高校俱乐部社区(官方QQ群:908527260),成为CSDN高校俱乐部的成员具体步骤(必填),填写如下表单,表单链接如下:
人才储备数据库及线上礼品发放表单邀请人吴钟昊:https://ddz.red/CSDN
CSDN高校俱乐部是给大家提供技术分享交流的平台,会不定期的给大家分享CSDN方面的相关比赛以及活动或实习报名链接,希望大家一起努力加油!共同建设中南民族大学良好的技术知识分享社区。

注意:

1.社区成员不得在社区发布违反社会主义核心价值观的言论。

2.社区成员不得在社区内谈及政治敏感话题。

3.该社区为知识分享的平台,可以相互探讨、交流学习经验,尽量不在社区谈论其他无关话题。

试试用AI创作助手写篇文章吧