版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
C语言的基本语法
本帖主要讲述C语言的基本语法
C程序是由各种令牌组成,令牌可以是关键字、标识符、常量、字符串 值、或者一个符号。
请看下面的例子
printf("hello world");
先分解一下
printf
(
"hello world"
)
;
每一行都是一个令牌
- 在C程序里面,分号代表语句的结束,也就是说每个语句都应该以分号结束,它代表一个逻辑实体结束。
C语言之父 && Unix之父 Dennis Ritchie
“C语言之父” 丹尼斯·里奇(Dennis Ritchie)辞世。计算机爱好者们以特有的方式纪念这位编程语言的重要奠基人。许多网友的发帖中没有片言只字,仅仅留下一个分号“;”。在C 语言中,英文分号标志着一行指令语句的结束,网友们以此来悼念“C语言之父”,美国著名计算机专家丹尼斯·里奇(Dennis Ritchie)所引领的时代悄然远去。
程序说明
printf("hello world");
return 0;
以上是两个不同的语句
C语言有两种注释方式
//单行注释
/*单行注释*/
/*
多行注释
多行注释
多行注释
多行注释
*/
请不要嵌套注释。例如:
/*
/*
嵌套注释
*/
*/
注释只是为了阅读代码更加方便,编译器不会编译注释内容
C语言标识符是用来标识变量、函数、或者其它任何用户自定义的项目名称,一个标识符需要以字母A-Z或者a-z或者下划线 _ 开始,后面跟一些字母、下划线、数字(0-9)。
下面列出几个有效的标识符
myc func hello a _temp a_123 myname_50
下表列出了C语言中的保留字,这些保留字不能作为常量名、变量名、或者其它标识符
关键字 | 说明 |
---|---|
auto | 声明自动变量 |
break | 跳出当前循环 |
case | 开关语句分支 |
char | 声明字符型变量或者函数返回类型 |
const | 声明只读变量 |
continue | 结束当前循环,开始下一轮循环 |
default | 开关语句中的 “其他” 分支 |
do | 循环语句中的循环体 |
double | 声明双精度浮点型变量或者声明函数返回类型 |
else | 条件语句否定分支(与 if 连用) |
enum | 声明枚举类型 |
extern | 声明变量或者函数在其它文件或者本文件的其他位置定义 |
float | 声明浮点型变量或者函数返回类型 |
for | 一种循环语句 |
goto | 无条件跳转语句 |
if | 条件语句 |
int | 声明整型变量或者函数 |
long | 声明长整型变量或者函数 |
register | 声明寄存器变量 |
return | 子函数返回语句(可以带参数,也可以不带参数) |
short | 声明短整型变量或者函数 |
signed | 声明有符号类型变量或者函数 |
sizeof | 计算数据类型或者变量长度(即所占字节数) |
static | 声明静态变量 |
struct | 声明结构体变量 |
switch | 用于开关语句 |
typedef | 用于给数据类型取别名 |
unsigned | 声明无符号类型变量或者函数 |
union | 声明共同体类型 |
void | 声明函数无返回值或者无参数,声明无类型指针 |
volatile | 说明变量在程序执行中可以被隐含地改变 |
while | 循环语句 |
C99新增关键字
_Bool | _Complex | _Imaginary | inline | restrict |
---|
C11新增关键字
_Alignas | _Alignof | _Atomic | _Generic | _Noreturn |
---|---|---|---|---|
_Static_assert | _Thread_local |
- 只包含空格的行,被称为空白行,可能带有注释,C 编译器会完全忽略它。
- 在 C 中,空格用于描述空白符、制表符、换行符和注释。空格分隔语句的各个部分,让编译器能识别语句中的某个元素(比如 int)在哪里结束,下一个元素在哪里开始。因此,在下面的语句中:
int num;
在这里,int后面必须跟一个空格,这样编译器才能识别到一个关键字,一个标识符。
fruitnums = applenums + orangenums; // 获取水果的总数
=和+两边可以不加空格,但是为了程序的可读性,我们增加空格,这不会影响程序的正常编译,同时让程序员一目了然。
还有众多的C语言编写技巧,请查阅《高质量C、C++编程指南》提取码:j7u4