C语言基本语法

C program basically consists of the following parts: 


  1. Preprocessor Commands       
  2. Functions 
  3. Variables 
  4. Statements & Expressions 
  5. 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语言的关键字分为以下几类:
分类
说明
类型说明符
 用于定义、说明变量、函数或其它数据结构的类型。如前面例题中用到的intdouble等。
语句定义符
用于表示一个语句的功能。如【例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(默认)
0 255(当使用 /J 编译时)
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 +/- 387 位数)
double
8
1.7E +/- 30815 位数)
long double
double 相同
double 相同
wchar_t
2
0 65,535

常用转义字符

\n  回车换行
\t  横向跳到下一制表位置
\v  竖向跳格
\b  退格
\r  回车
\f  走纸换页
\\  反斜扛符"\"
\'  单引号符
\a  鸣铃
\ddd 13 位八进制数所代表的字符
\xhh 12 位十六进制数所代表的字符

预编译指令












评论

此博客中的热门博文

如何解决system UIDs Inconsistent

如何阅读一本书