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

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语言中...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 C语言的词法规则 京鸿智武 今天 提纲:本文主要介绍了C语言中的词法规则,包括字符.注释.接续符.标识符 一.字符 1.字符集都包括什么? 标准规定字符集 ...

  2. c语言插入特定的字符串,C语言实现:将一个字符串插入到另一个字符串的指定位置...

    C语言实现:将一个字符串插入到另一个字符串的指定位置 发布时间:2018-08-22 13:23, 浏览次数:1672 示例一: char *insert(char *s1, char *s2, in ...

  3. 14c语言合并两个字符串,C语言的标识符和字符数据、字符串数据.ppt

    1·2 C语言的标识符和字符数据.字符串数据 本节的任务是掌握用printf()函 数在屏幕的任意位置打印字 符组成的图案. 1·2·1 C语言的字符串数据.字符数据和转义字符 • 例1_1_2 用p ...

  4. c语言文件打开方式字符串,C语言打开文件-C语言打开文件的方式-C语言以只读方式打开文件-C语言以读写方式打开文件-嗨客网...

    C语言打开文件教程 在 在 C 语言中,打开文件使用 fopen C语言fopen函数详解 语法 FILE *fopen(char *filename, char *mode); 参数 参数 描述 f ...

  5. c语言如何浮点数转换为字符串,C语言把浮点数转换为字符串

    1.把float/double格式化输出到字符串 标准的C语言提供了atof函数把字符串转double,但是没有提供把float/double转换为字符串的库函数,而是采用sprintf和snprin ...

  6. c语言如何赋值空字符串,c语言中如何给字符串数组赋值

    c语言中如何给字符串数组赋值 1.问题 这是我写的 struct student { int x; char name[10]; }; void main() { student st: st.nam ...

  7. c语言不用strcpy复制字符串,C语言不使用strcpy函数如何实现字符串复制功能

    前言继承是OOP设计中的重要概念.在C++语言中,派生类继承基类有三种继承方式:私有继承(private).保护继承(protected)和公有继承(public).一.继承规则继承是C++中的重要特 ...

  8. c语言将字母存入字符串,C语言把资料读入字符串以及将字符串写入文件

    C语言把文件读入字符串以及将字符串写入文件 1.纯C实现 FILE *fp; if ((fp = fopen("example.txt", "rb")) == ...

  9. c 语言比较三个字符串,C语言字符篇(三)字符串比较函数

    C语言字符篇(三)字符串比较函数 #include int strcmp(const char *s1, const char *s2);    比较字符串s1和s2 int strncmp(cons ...

  10. c语言从excal读取字符串,C语言操作EXCEL文件(读写)

    C语言操作EXCEL文件(读写) 本文主要介绍通过纯C语言进行EXCEL的读写操作:(修改时间2018.08.28,如果运行结果均是0,请看文章最后一节) C语言读操作 C语言写操作 在之前需要使用C ...

最新文章

  1. 手把手教你使用Flask轻松部署机器学习模型(附代码链接) | CSDN博文精选
  2. 后量子密码芯片研究取得重大突破,论文入选ISSCC 2022和CHES 2022
  3. Lighting System Design UVA - 11400 动态规划
  4. WebStorm设置自动刷新
  5. 爱奇艺、优酷、腾讯独播内容均超70%,如果只能三选一,哪家会员最值得买?
  6. 【OFDM通信】基于块状导频的信道估计算法仿真含Matlab源码
  7. linux soruce 命令,Linux source命令是干啥的?
  8. R语言 —— 包(package)的下载和使用
  9. 华为数字化IT应用工程师面试经历
  10. HTTP技术快速提升网页的访问速度
  11. Pandoc安装与使用总结
  12. Mac 有线网络或WiFi网络共享成WiFiwifi的方法
  13. 头脑王者类似源码研究
  14. vue打包上线的代理问题
  15. linux命令:cp和scp
  16. 指令(机器指令)格式
  17. vue背景图片路径问题
  18. 《从菜鸟到大师-杨老师课程笔记》Python工程师之 01
  19. ubuntu(18.04LTS)切换 tty终端模式 和图形桌面
  20. 将物流行业送往智能时代,菜鸟网络的配送车已经上路了

热门文章

  1. 【论文笔记】Understanding Software Changes: Extracting, Classifying, and Presenting Fine-Grained Source Co
  2. 计算机控制实验总结电机调速,控制步进电机调速系统实验报告
  3. 将数组分成两部分,使得 |sum1 - sum2| 最小. LeetCode - 1049
  4. 基于微信小程序音乐播放器的设计与实现毕业设计源码271156
  5. 多源复制中单个channal复制异常处理
  6. win10下Linux子系统(ubuntu)开启并配置(shell主题,设置中文环境,图形界面...)
  7. 回收宝只要6499买华为Mate40 Pro还送iPhone 12手机:结果被秒杀!
  8. CentOS 6忘记密码解决方法(三分钟超快o)
  9. 如何用 Ps 制作毛玻璃穿透效果?
  10. HttpEntity的类型及其使用(各种继承的使用)