C语言基本语法
C program basically consists of the following parts:
- Preprocessor Commands
- Functions
- Variables
- Statements & Expressions
- Comments
- 预处理器指令
- 函数
- 变量
- 语句 & 表达式
- 注释
注意
- int main() 是主函数,一个c程序总是从main函数开始执行的,不论main函数的位置在哪里。
- 在使用系统库函数时,要在程序中使用预编译指令"#include",告诉 C 编译器在实际编译之前要包含 stdio.h 文件。
- Return 0是把0作为函数的返回值,这是所有C程序所要求的。
- 每个语句和数据声明的最后必须有一个分号,分号它表明一个逻辑实体的结束。
- 可以用"//"对c程序中任何一行或数行做注释
- "\n"是换行符,实现回车换行。
- C程序中一行内可以写几个语句,一个语句也可以分写在多行上,程序的各行没有行号。
- %d是输入输出的格式字符串,用来指定输入输出时的数据类型和格式。
- 如果要同时定义多个同类型的变量,在两个变量间需要用逗号隔开。
- C语言本身没有输入输出语句,输入和输出操作是由c函数库中的函数来实现的。
- 在c程序中,凡是程序中用到的所有变量都必须在使用前定义,指定它们的类型。
- C 是区分大小写的编程语言。
- /.../ 将会被编译器忽略,这里放置程序的注释内容。它们被称为程序的注释。
标识符
- 在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。C语言规定,标识符只能是字母(A~Z, a~z)、数字(0~9)和下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。
- 标识符即名字,C 语言中大写字母与小写字母被认为是两个不同的字符。
注释
- 标准C语言的注释是以“/*”开头并以“*/”结尾的串。在“/*”和“*/”之间的即为注释。程序编译时,不对注释作任何处理。注释可出现在程序中的任何位置。注释用来向用户提示或解释程序的意义。在调试程序中对暂不使用的语句也可用注释符括起来,使翻译跳过不作处理,待调试结束后再去掉注释符。
- 另外,各种编译器都支持以“//”开头的注释,虽然它不是标准C的规定,但是早已成为事实标准,在程序中广泛使用。“//”仅支持单行注释,也就是说,注释中不能出现换行符;而“/* */”支持多行注释,注释中可以出现换行符。
关键字
- 关键字是由C语言规定的具有特定意义的字符串,通常也称为保留字。用户定义的标识符不应与关键字相同。
C语言的关键字分为以下几类:
分类
|
说明
|
类型说明符
|
用于定义、说明变量、函数或其它数据结构的类型。如前面例题中用到的int、double等。
|
语句定义符
|
用于表示一个语句的功能。如【例1-3】中用到的if else就是条件语句的语句定义符。
|
预处理命令字
|
用于表示一个预处理命令。如前面各例中用到的include。
|
auto
|
else
|
long
|
switch
|
break
|
enum
|
register
|
typedef
|
case
|
extern
|
return
|
union
|
char
|
float
|
short
|
unsigned
|
const
|
for
|
signed
|
void
|
continue
|
goto
|
sizeof
|
volatile
|
default
|
if
|
static
|
while
|
do
|
int
|
struct
|
_Packed
|
double
|
分隔符
- 在C语言中采用的分隔符有逗号(,)和空格两种。逗号主要用在类型说明和函数参数表中,分隔各个变量。空格多用于语句各单词之间,作间隔符。在关键字,标识符之间必须要有一个以上的空格符作间隔,否则将会出现语法错误,例如把 int a; 写成 inta; C语言编译器会把 inta 当成一个标识符处理,其结果必然出错。
常量
- 常量是值不能被改变的量。C语言中使用的常量可分为数字常量、字符常量、字符串常量、符号常量、转义字符等多种。
变量
- 变量由用户自己命名,用来保存特定类型的数据,数据可以被改变。数据类型有整数、浮点数、字符等。
运算符
优先级
|
运算符
|
名称或含义
|
使用形式
|
结合方向
|
说明
|
1
|
[]
|
数组下标
|
数组名[常量表达式]
|
左到右
|
|
()
|
圆括号
|
(表达式)/函数名(形参表)
|
|||
.
|
成员选择(对象)
|
对象.成员名
|
|||
->
|
成员选择(指针)
|
对象指针->成员名
|
|||
2
|
-
|
负号运算符
|
-表达式
|
右到左
|
单目运算符
|
(类型)
|
强制类型转换
|
(数据类型)表达式
|
|||
++
|
自增运算符
|
++变量名/变量名++
|
单目运算符
|
||
--
|
自减运算符
|
--变量名/变量名--
|
单目运算符
|
||
*
|
取值运算符
|
*指针变量
|
单目运算符
|
||
&
|
取地址运算符
|
&变量名
|
单目运算符
|
||
!
|
逻辑非运算符
|
!表达式
|
单目运算符
|
||
~
|
按位取反运算符
|
~表达式
|
单目运算符
|
||
sizeof
|
长度运算符
|
sizeof(表达式)
|
|||
3
|
/
|
除
|
表达式/表达式
|
左到右
|
双目运算符
|
*
|
乘
|
表达式*表达式
|
双目运算符
|
||
%
|
余数(取模)
|
整型表达式/整型表达式
|
双目运算符
|
||
4
|
+
|
加
|
表达式+表达式
|
左到右
|
双目运算符
|
-
|
减
|
表达式-表达式
|
双目运算符
|
||
5
|
<<
|
左移
|
变量<<表达式
|
左到右
|
双目运算符
|
>>
|
右移
|
变量>>表达式
|
双目运算符
|
||
6
|
>
|
大于
|
表达式>表达式
|
左到右
|
双目运算符
|
>=
|
大于等于
|
表达式>=表达式
|
双目运算符
|
||
<
|
小于
|
表达式<表达式
|
双目运算符
|
||
<=
|
小于等于
|
表达式<=表达式
|
双目运算符
|
||
7
|
==
|
等于
|
表达式==表达式
|
左到右
|
双目运算符
|
!=
|
不等于
|
表达式!= 表达式
|
双目运算符
|
||
8
|
&
|
按位与
|
表达式&表达式
|
左到右
|
双目运算符
|
9
|
^
|
按位异或
|
表达式^表达式
|
左到右
|
双目运算符
|
10
|
|
|
按位或
|
表达式|表达式
|
左到右
|
双目运算符
|
11
|
&&
|
逻辑与
|
表达式&&表达式
|
左到右
|
双目运算符
|
12
|
||
|
逻辑或
|
表达式||表达式
|
左到右
|
双目运算符
|
13
|
?:
|
条件运算符
|
表达式1? 表达式2: 表达式3
|
右到左
|
三目运算符
|
14
|
=
|
赋值运算符
|
变量=表达式
|
右到左
|
|
/=
|
除后赋值
|
变量/=表达式
|
|||
*=
|
乘后赋值
|
变量*=表达式
|
|||
%=
|
取模后赋值
|
变量%=表达式
|
|||
+=
|
加后赋值
|
变量+=表达式
|
|||
-=
|
减后赋值
|
变量-=表达式
|
|||
<<=
|
左移后赋值
|
变量<<=表达式
|
|||
>>=
|
右移后赋值
|
变量>>=表达式
|
|||
&=
|
按位与后赋值
|
变量&=表达式
|
|||
^=
|
按位异或后赋值
|
变量^=表达式
|
|||
|=
|
按位或后赋值
|
变量|=表达式
|
|||
15
|
,
|
逗号运算符
|
表达式,表达式,…
|
左到右
|
从左向右顺序运算
|
注:同一优先级的运算符,运算次序由结合方向所决定。
上面的表无需死记硬背,很多运算符的规则和数学中是相同的,用得多,看得多自然就记得了。如果你是在记不住,可以使用( )。
数据类型
- short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。
类型名称
|
字节
|
值的范围
|
Int(基本整型)
|
4
|
–2,147,483,648 到
2,147,483,647
|
unsigned int(无符号基本整型)
|
4
|
0 到 4,294,967,295
|
Bool(布尔)
|
1
|
false 或 true
|
char
|
1
|
-128 到 127(默认)
|
signed char
|
1
|
–128 到 127
|
unsigned char
|
1
|
0 到 255
|
Short(短整型)
|
2
|
–32,768 到 32,767
|
unsigned short(无符号短整型)
|
2
|
0 到 65,535
|
Long(长整型)
|
4
|
–2,147,483,648 到
2,147,483,647
|
unsigned long
|
4
|
0 到 4,294,967,295
|
long long(双长整型)
|
8
|
–9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
|
unsigned long long(无符号双长整型)
|
8
|
0 到
18,446,744,073,709,551,615
|
浮动
|
4
|
3.4E +/- 38(7 位数)
|
double
|
8
|
1.7E +/- 308(15 位数)
|
long double
|
与 double 相同
|
与 double 相同
|
wchar_t
|
2
|
0 到 65,535
|
常用转义字符
\n 回车换行
\t 横向跳到下一制表位置
\v 竖向跳格
\b 退格
\r 回车
\f 走纸换页
\\ 反斜扛符"\"
\' 单引号符
\a 鸣铃
\ddd 1~3 位八进制数所代表的字符
\xhh 1~2 位十六进制数所代表的字符
评论
发表评论