该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

C语言的词法规则

京鸿智武 今天

提纲:本文主要介绍了C语言中的词法规则,包括字符、注释、接续符、标识符

一、字符

1、字符集都包括什么?

标准规定字符集包括英语所有的大写字母和小写字母、数字0~9、以及! ” # % ’ * + , - . / : ; = ? \ ^ _ | ~ <> {} () []等符号。

2、分类

(1)普通字符

由单引号括起来的一个字符;

(2)字符串常量

由双引号将若干个字符括起来;

(3)符号常量

用一个符号名代表一个常量的,称为符号常量;

例如:#define A 1

上面的代码表示,凡是程序中出现A的地方全部替换成1

(4)三字母词(9个)

三字母词是三个字符的序列,合起来表示一个字符,通常在C环境缺少字符的情乱下使用

常见的9个三字母词:

??( 代表 [

??) 代表 ]

??! 代表 |

??< 代表 {

??> 代表 }

??’ 代表 ^

??= 代表 #

??/ 代表 \

??- 代表 ~

(5)转义字符(13个)

当一个字符在一个编程环境中有特殊的意义,而想要使用这个特定的字符时,可能没有办法实现,这时候就提出了转义字符的概念。

下面列出了常见的13个转义字符

\’ 输出字符’

\” 输出字符”

\? 输出字符?

\ 输出字符\

\a 发出警告声音

\b 将当前位置后退一个字符

该程序的输出结果为

\f 将当前位置移动到下一页的开头

该程序的输出结果为

\n 换行符,将当前结果移动到下一行的开头

\r 回车符,将当前的位置移动到本行的开头

\t 水平制表符,将当前位置移动到下一个tab位置

\v 垂直制表符,将当前位置移动到下一个垂直制表对齐处

\ddd 其中一个d代表一个八进制数字,该输出结果是与八进制码对应的字符

\xddd 其中一个d代表一个十六进制数字,该输出结果是与十六进制码对应的字符

二、注释

1、注释方式

C语言中有两种注释方式

(1)/**/

(2)//

2、注释原则

(1)编译器剔除掉注释之后,会用空格来替换原有的注释位置。

(2)编译器把/当作一段注释的开始,将/后面的内容都当作注释内容,直到出现*/为止,表示注释结束。

(3)/总是与离他最近的/进行匹配。

(4)注释/**/不允许嵌套。

(5)只要/和*之间没有空格,编译器就会把他当作注释的开始。

(6)对加注释的几点建议

注释应当简洁明了;

一目了然的代码不加注释;

注释采用英文;

注释可以在代码的同行或者上一行,但不能在代码的下一行。

(7)哪些地方十分有必要加注释

对于全局变量必须加注释;

数值的单位一定要加注释;

对变量的范围给出注释;

对函数的入口出口数据给注释。

三、接续符

C语言中以\表示断行,编译器会自动将\剔除掉,跟在\后面的内容会自动接续到前一行

注:\之前和之后都不能有空格。

四、标识符

标识符就是函数、变量、类型等的名字

1、命名规则

标识符由大小写字母、数字、下划线组成,不能以数字开头。

2、注意事项

(1)标识符虽然没有长度限制,但是编译器会自动忽略第31个字符后面的字符;

(2)ANSI C标准规定,C实现必须能够区别出前6个字符不同的外部名称(由链接器操纵的名字),而且,这个定义中不区分英语字母的大小写。

(3)内部名和外部名

ANSI C标准规定,标识符可以为任意长度,但外部名必须至少能由前6个字符唯一地区分,并且不区分大小写。这里外部名指的是在链接过程中所涉及的标识符,其中包括文件间共享的函数名和全局变量名;

ANSI C标准还规定,内部名必须至少能由前31个字符唯一地区分。内部名指的是仅出现于定义该标识符的文件中的那些标识符。C语言中的字母是有大小写区别的,因此count Count COUNT是三个不同的标识符。

(4)标识符不能和C语言的32个关键字相同,也不能和用户已编制的函数或C语言库函数同名。

(5)看一个关于标识符例题

例:\40的值是多少?\100、\x40、\x100、\0123、\x0123的值又分别是什么?

我们分别将这些例子运行一下:

\40的值

分析:\ddd代表的是八进制数,将其转换为十进制数再查询ASCII表,便可以得到正确结果

八进制数40转换为十进制数是32,通过ASCII字符集查询到是空格字符,因此输出结果为空格;

\100和\x40的值

分析:八进制数100和十六进制数40转换为十进制数是64,通过ASCII字符集查询到是字符@,因此输出结果为@;

\x100的值

分析:由图可知,十六进制数100超出了ASCII所能表示的范围,因此出错;

\0

一个基本c语言注释用什么字符,C语言的词法规则京鸿智武 今天提纲:本文主要介绍了C语言中...相关推荐

  1. c语言输入一段字符,C语言实现输入一个字符串后打印出该字符串中字符的所有排列...

    本文实例讲述了C语言实现输入一个字符串后打印出该字符串中字符的所有排列的方法,属于数学里的排列问题.是一个很实用的算法技巧.分享给大家供大家参考.具体实现方法如下: 例如输入字符串abc,则输出由字符 ...

  2. c语言330转化成字符,c语言同步练习(330份).doc

    c语言同步练习(330份) 第一章计算机基础 易错题型分析 C语言的基本单位是() A 函数B过程C子程序D子例程 答案:(A) [分析考点] C语言是函数式的语言,它的基本单位是函数,在C语言中任何 ...

  3. c语言注释语句执行吗,C语言学习笔记之C语言概念解析(附资料分享)每一个语句都必须以分号结尾但预处理命令函数头和花括号“}”之后不能加分号...

    [[怪兽爱C语言]C语言学习笔记之C语言概念解析(附资料分享)]https://toutiao.com/group/6582429294901854728/?iid=15906422033&a ...

  4. c 语言注释格式化,linux 格式化C语言的源文件 命令:indent

    indent命令可辨识C的原始代码文件,并加以格式化,以方便程序员阅读.修改等操作. 语法 indent(选项)(源文件) 或 indent(选项)(源文件)(-o 目标文件) 选项 -bad:在声明 ...

  5. c语言怎么写入换行字符,C语言中的换行符是什么:要么 ?

    C中的换行符是什么? 我知道不同的操作系统具有不同的行尾字符,但是它们被转换为C换行符. 那是什么角色? .在读取或写入文本模式文件或stdin / stdout等时,必须使用,C会为您处理翻译.当您 ...

  6. c语言注释和代码互换,c语言项目—注释转换(c——c++)

    题目要求: 要将全部的c语言风格的注释转换为c++风格的注释,如下图所示,需要将input.c文件经过注释转换程序转换为output.c文件所示. 这是测试结果: 首先我们来分析一下这个题目,在做这个 ...

  7. c语言判断获取位置字符,C语言 · 判定字符位置

    Linux终端打印命令使用介绍 常用linux打印命令 日常使用中或shell脚本中linux终端打印命令有echo和printf.  echo命令 功能说明:显示文字.语 法:echo [-ne][ ...

  8. c语言的256个字符,C语言版 256点FFT算法

    从网上找到的一段感觉比较好的FFT函数,可以直接使用,出处由于时间原因已经忘记了@@ //文件名:fft.c #include "fft.h" //128等分余弦表 static ...

  9. C语言数字转扑克牌字符,C语言实现简易扑克牌游戏

    将一副扑克牌平均分成两份,每人拿一份.a先拿出手中的第一张扑克牌放在桌上,然后b也拿出手中的第一张扑克牌,并放在a刚打出的扑克牌的上面,就像这样两人交替出牌.出牌时,如果某人打出的牌与桌上某张牌的牌面 ...

最新文章

  1. 2022-2028年中国物联网金融产业深度调研及投资前景预测报告
  2. 【玩转cocos2d-x之三十四】绘图:CCDrawingPrimitives和CCDrawNode
  3. linux prelink.cache,Linux基础操作
  4. java 插件开发 互相依赖_java – Eclipse插件开发:有没有办法控制有关我的插件缺少依赖项的安装程序消息?...
  5. chipsel语言_用VHDL语言对FPGA和CPLD器件进行开发时应注意的事项
  6. java之GC日志该怎么看
  7. html5canvas绘制图片源码,HTML5 CANVAS:绘制图片
  8. 1.单进程SAPI生命周期
  9. java人脸识别源码_用 Java 实现人脸识别功能(附源码)
  10. 统计项目代码行数工具,如何统计代码行数。
  11. php高并发解决方案
  12. 计算机基础(01)基础知识
  13. cuda the launch timed out and was terminated windows11解决方案 关闭TDR
  14. 工程热力学学习笔记DE-2. Erster Hauptsatz der Thermodynamik
  15. python-collections
  16. python聚合函数_Python 数据聚合 - 树懒学堂
  17. HBase是个啥子?
  18. 球迷必备:2012欧洲杯手机观战指南
  19. easyexcel 遇到的问题 org.terracotta.statistics.StatisticsManager.tags([Ljava/lang/String;)Ljava/util/Set;
  20. Visual Studio工具集相关(MSBuild)

热门文章

  1. Django从理论到实战(part26)--ORM模型
  2. Django(part9)--GET请求
  3. python观察日志(part13)--any和all
  4. 为什么肯德基旁边总有一家麦当劳
  5. SAP UI5 应用开发教程之五十五 - 如何将本地 SAP UI5 应用通过 Node.js Express 部署到公网上试读版
  6. TypeScript Type Assertions - 类型断言
  7. TypeScript strictness - 严格语法检查
  8. wordpress插件上传的失败原因和处理方案
  9. difference between SAP UI5 RTL false and true - set breakpoint to change behavior
  10. 阮一峰react demo代码研究的学习笔记 - React demo1 debug - how is jsx converted to js