当前位置: 首页 > news >正文

转义字符和语句

11. 转义字符

11.1 定义及作用

也许在前⾯的代码中你看到 \n / \0 很纳闷是啥。其实在字符中有⼀组特殊的字符是转义字符,转义
字符顾名思义:转变原来字符意思的字符

比如:我们有字符n,在字符串中打印的时候⾃然能打印出这个字符,如下:

如果我们修改⼀下代码,在n的前⾯加上\,变成如下代码:

我们可以看到修改的前后代码输出的结果,截然不同的,那这是为什么呢?

这就是转义字符的问题,\n 是⼀个转义字符表示换行的意思,我们可以简单的理解为 \ 让 n 的意思发生了转变, n 本来是⼀个普通的字符,被 \ 转义为换⾏的意思

再例如如果我想在屏幕上打印内容:龟叔说:"人生苦短,我学python",这时我们应该怎样处理呢?

如果我还像之前那样直接打印内容,请看效果:

这显然不能满足我的需求,因为计算机并不能充分了解你的意图,只能单纯的按照顺序分配双引号的使用,那么这时使用转义字符就可以实现我们的需求,请看:

11.2 代表性的转义字符

C语⾔中像这样的转义字符还有⼀些,具体如下:

下面是代码演示:

#include <stdio.h> int main() { printf("%c\n", '\''); printf("%s\n", "\""); printf("c:\\test\\code\\test.c\n"); //题目一 printf("%s","D:\\MyFiles\\2025\\test.c\r\n") //题目二 printf("\a"); //是8 printf("%c\n", '\130'); //130是8进制,转换成10进制是88,以88作为ASCII码值的字符是'x' printf("%c\n", '\x30'); //x30中的30是16进制,转换成10进制是48,以48作为ASCII码值的字符是'0' return 0; }

这些ASCII码值是可以自己写代码验证的,⼤家也可以自己验证。
关于转义字符我们首先要了解,然后要能在字符串中识别出来。

11.3 两道练习题

现在我们接着做两道题目来巩固一下知识点吧,看上方代码中的题目一和题目二,要求你分别数出它们之中字符串的长度

题目一:其中所有的 '\\' 都算作一个字符,可打印出字符 '\' , '\n' 算一个字符,表示换行.故它的长度为:20.

题目二: 除 '\\' 和 '\n' 外, 这里面还有一个转义字符 '\r' ,是回车符 ,故它的长的是24.

那么我上面给到的答案一定对吗?这是个值得思考的问题,这时回想起我在上面强调过的,使用双引号(" ")的字符串如果尾部没有 '\0' 的话,会自动在尾部加上 '\0'. 故所有上述答案应该在原有数值上再加一才是正确答案.是不是更加印象深刻了呢?

12. 语句和语句分类

C语⾔的代码是由⼀条⼀条的语句构成的,C语⾔中的语句可为以下五类:
• 空语句
• 表达式语句
• 函数调⽤语句
• 复合语句
• 控制语句

12.1 空语句

空语句是最简单的,⼀个分号就是⼀条语句,是空语句。

#include <stdio.h> int main() { ;//空语句 return 0; }

空语句在语法上是一条完整语句,常用于循环或条件判断中充当循环体,表示 “暂时什么都不做”。例如在需要延时、占位,或者后续再补充逻辑的场景中,使用空语句可以避免语法报错。但随意使用空语句也可能造成逻辑错误,比如多写了一个分号导致循环体提前结束。

12.2 表达式语句

表达式语句就是在表达式的后边加上分号。如下所示:

#include <stdio.h> int main() { int a = 20; int b = 0; b = a + 5; //表达式语句 return 0; }

12.3 函数调⽤语句

函数调用的时候,也会加上分号,就是函数调⽤语句。

#include <stdio.h> int Add(int x, int y) //加法函数 { return x+y; } int main(void) { printf("hehe\n");//函数调⽤语句 int ret = Add(2, 3);//函数调⽤语句 return 0; }

12.4 复合语句

复合语句其实就是代码块,成对括号中的代码就构成⼀个代码块,也被称为复合语句。

#include <stdio.h> void print(int arr[], int sz) //函数的⼤括号中的代码也构成复合语句 { int i = 0; for(i = 0; i < sz; i++) { printf("%d ", arr[i]); } } int main() { int i = 0; int arr[10] = {0}; { for(i = 0; i < 10; i++) //for循环的循环体的⼤括号中的就是复合语句 arr[i] = 10 - i; printf("%d\n", arr[i]); } return 0; }

12.5 控制语句

控制语句⽤于控制程序的执行流程,以实现程序的各种结构⽅式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句
可分成以下三类:
1. 条件判断语句也叫分⽀语句:if语句、switch语句;
2. 循环执⾏语句:dowhile语句、while语句、for语句;
3. 转向语句:break语句、goto语句、continue语句、return语句

这是C语言中非常重要的内容,需要着重学习,这里就先不给出范例,后期会给⼤家⼀⼀介绍控制语句。

http://www.jsqmd.com/news/717804/

相关文章:

  • 深度学习 激活函数 (菜鸟都能听懂)
  • 告别点灯!用LVGL在ESP32上快速打造智能家居UI(基于LVGL官方ESP32端口)
  • DeepSeek V4大模型的技术解析与产业实践
  • Tessent ATPG DRC检查避坑指南:从C1到T24,手把手教你定位和修复那些恼人的违例
  • 安卓开发秘籍:解锁10大性能优化秘诀
  • RMBG-2.0批量抠图技巧:一次处理10张图,效率提升10倍
  • 2026年江阴监控系统安装哪家强?专业之选大揭秘!
  • HarmonyOS 6 Progress组件设置环形进度条属性使用文档
  • C++多态编程:从原理到实战
  • 大语言模型推理的硬件优化与HBF技术解析
  • DDR ECC实战避坑指南:CE_FFA/UE_FFA这些寄存器到底怎么用?
  • 2026年降AI工具知网检测效果横评:主流工具全平台实测完整结果
  • Qwen3-ASR-0.6B可部署方案:边缘设备GPU算力优化实战教程
  • nli-MiniLM2-L6-H768效果展示:英文文本对蕴含关系精准识别案例集
  • AssetRipper终极指南:从Unity游戏文件中提取资源的完整教程
  • DeEAR在有声书制作中的应用:主播语音韵律丰富度自动评分与优化建议
  • TC39x芯片SRAM守护神MTU全解析:从SSH硬件结构到ECC/MBIST的避坑指南
  • MoviePilot如何通过智能策略规避115网盘风控,实现高效媒体库管理
  • 漳州华起技工学校:合规办学育英才,赖老师护航成长路
  • 为什么92%的MCP插件在VS Code 1.89+版本崩溃?——基于17个真实生产环境日志的协议兼容性根因分析
  • 网易云音乐PC版插件管理终极指南:BetterNCM Installer完整教程
  • Flutter动画高级技巧:创建流畅的用户体验
  • 2026年降AI工具中英文论文效果对比:哪款工具双语支持更好详细横评
  • Spring Boot 异步任务调度
  • 远程容器SSH调试失败、端口转发异常、GPU无法调用?(Dev Containers 生产就绪 checklist v2.3.1)
  • 2026年3月优质的超高压反应釜供应商推荐,超高压反应釜/氢能氢气瓶压力测试/井口装置测试,超高压反应釜厂家有哪些 - 品牌推荐师
  • Docker run --platform=wasi 报错汇总手册:从exec format error到__wasi_args_get未定义(含v0.12–v0.15全版本兼容矩阵)
  • Python+OpenCV 计算机视觉:从零入门 AI 视觉开发
  • Phi-3.5-mini-instruct多场景落地:覆盖办公、教育、政务、研发四大高频需求
  • Nunchaku FLUX.1 CustomV3优化技巧:调整Steps和CFG,让图片更符合预期