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

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. Angular-Ui-Router+ocLazyLoad动态加载脚本
  2. ubuntu16.04 安装jdk
  3. [Vue warn]: Duplicate keys detected: ‘0‘. This may cause an update error.
  4. Silverlight4 ColorPicker控件
  5. Kali Linux破解WiFi教程
  6. UCan下午茶武汉站,为你全面挖宝分布式存储
  7. sqlserver查询本周、上周、今天、昨天、本月、上月数据
  8. java单元测试的编写及运行方法
  9. 华为Esight安装包
  10. 2021年【CSDN毎周小结】
  11. python微信群发助手在哪_python 微信群发_Python-Pyqt5编写微信群发软件
  12. Clickhouse:日志表占用大量磁盘空间怎么办?
  13. 基于ArcGIS的城市住房选址分析(以郑州市为例)
  14. wifi共享大师,去除弹窗广告。
  15. 支付宝APP支付接口-PHP
  16. 买二手房不后悔先知道8件事 高楼层未必卖得好
  17. LT7911D功能概述 LT7911D是Type-C/DP1.2转双路MIPI/Lvds的一款芯片
  18. java BufferedImage 转base64
  19. Android studio 学习 之打包
  20. 咸鱼之王攻略及Mac M1 M2 系统电脑挂机解决无法登录的问题

热门文章

  1. 清华大学python课程_清华大学计算机系课程攻略
  2. 2020春招机考汇总1(Python):农场养鸡、连续子序列最大值的期望
  3. 实战分享|数据驱动「付费转化」的3个思路
  4. 本地安装 SAP Commerce 实例
  5. 一份我们团队Java开发的开发规范,参考了阿里巴巴Java开发手册终极版v1.3.0
  6. SAP系统和微信集成的系列教程之一:微信开发环境的搭建
  7. SAP Marketing Cloud里获取Contact Interaction的postman请求
  8. 一文让您搞清楚@Resources, @Inject和@Autowired的区别
  9. SAP CRM OData模型里的addressable为true的含义
  10. 将SpringBoot应用Docker化并部署到SAP云平台