2_C程序结构和基本语法
2018-01-06 14:50
274 查看
C 程序结构
C 程序主要包括以下部分:(1) 预处理器指令
(2) 函数
(3) 变量
(4) 语句 & 表达式
(5) 注释
C 基本语法
C 程序由各种令牌(Tokens)组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。
分号
在 C 程序中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。
注释
注释就像是 C 程序中的帮助文本,它们会被编译器忽略。它们以 /* 开始,以字符 */ 终止。不能在注释内嵌套注释,注释也不能出现在字符串或字符值中。
标识符
对于变量,常量,函数,语句块都有名字,我们统统称之为标识符。C语言中的标识符只能由字母、数字和下划线三种字符组成。
注意:
1) 第一个字符必须是字母或下划线,不能是数字。
2) 不能把C语言关键字作为标识符。
3) 标识符对大小写敏感。
4) 标识符没有长度限制,但是标准允许编译器忽略第31个字符以后的字符
关键字
关键字就是已被C语言本身使用,不能作为其它标识符由ANSI标准定义的C语言关键字共32个:根据关键字的作用,可以将关键字分为数据类型关键字和流程控制关键字两大类。
(1) 数据类型关键字
1) 基本数据类型(5个)
Void;char;int;float;double
2) 类型修饰关键字(4个)
short;long;signed;unsigned
3) 复杂类型关键字(5个)
struct;union;enum;typedef;sizeof
4) 存储级别关键字(6个)
auto;static;register;extern;const;volatile
register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数
const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)
volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值
(2) 流程控制关键字
1) 跳转结构(4个)
return;continue;break;goto
2) 分支结构(5个)
if;else;switch;case;default
3) 循环结构(3个)
for;do;while
C 中的空格
只包含空格的行,被称为空白行,可能带有注释,C 编译器会完全忽略它。在 C 中,空格用于描述空白符、制表符、换行符和注释。
C语言并不规定什么地方可以书写语句,一行中可以出现多少语句,什么地方应该留下空白以及留下多少空白。
唯一的规则就是相邻的标记之间必须出现一至多个空白字符或者注释,否则它们将会被解释为单个标记。
下面三条语句是等价的:
1) y=x+1;
2) y = x + 1;
3) y = x
+
1;
相关文章推荐
- 两种arm汇编程序结构和基本语法
- Kotlin——程序的基本逻辑结构之选择、循环和跳转基本语法
- C#笔记(3)---基本语法[程序结构]
- C#笔记(3)---基本语法[程序结构]
- C#笔记(3)---基本语法[程序结构]
- 第一章 ASP.net C#基本语法(B篇 程序结构、运算符、运算优先级)
- 第一章 ASP.net C#基本语法(B篇 程序结构、运算符、运算优先级)
- ASP.net C#基本语法(B篇 程序结构、运算符、运算优先级)
- java学习之路 之 基本语法-程序流程控制-循环结构-for 循环练习题
- Chapter 3、Java语法基础(一)---- Java程序基本结构 (19th,Feb)
- java学习之路 之 基本语法-程序流程控制-循环结构-while循环练习题
- java学习之路 之 基本语法-程序流程控制-循环结构-嵌套循环练习题
- 第一章 ASP.net C#基本语法(B篇 程序结构、运算符、运算优先级)
- java学习之路 之 基本语法-程序流程控制-(if-else)语句练习题
- c语言的起源特点及c程序的基本结构
- 第二章 程序的基本结构
- Windows SDK笔记(一):Windows程序基本结构
- flask学习笔记1【服务器程序基本结构】
- 编译器架构的王者LLVM——(5)语法树模型的基本结构
- HTTP报文基本结构,自己写程序发送http包登陆某些网站。