C语言简要语法指南:修订间差异
(未显示4个用户的12个中间版本) | |||
第5行: | 第5行: | ||
基本数据类型主要可以划分为由字符,整形,浮点数据,同时这些数据类型都可以分为有符号,和无符号两种,完整的数据类型定义如下, 按照LINUX的习惯内"[]"中的内容表示可以省略: <br>✿按照占用内存大小排序 | 基本数据类型主要可以划分为由字符,整形,浮点数据,同时这些数据类型都可以分为有符号,和无符号两种,完整的数据类型定义如下, 按照LINUX的习惯内"[]"中的内容表示可以省略: <br>✿按照占用内存大小排序 | ||
*[signed] char unsigned char | *[signed] char | ||
*[signed] short [int] unsigned short [int] | *unsigned char | ||
*[signed] int unsigned int | *[signed] short [int] | ||
*[signed] long [int] | *unsigned short [int] | ||
*[signed] float unsigned float | *[signed] int | ||
*[unsigned] int | |||
*[signed] long [int] | |||
*unsigned long [int] | |||
*[signed] float | |||
*unsigned float | |||
*[signed] double unsigned double | *[signed] double unsigned double | ||
*long double | *long double | ||
第16行: | 第21行: | ||
== sizeof == | == sizeof == | ||
返回一个对象或者类型所占的内存字节数1 | |||
== typedef == | == typedef == | ||
第24行: | 第30行: | ||
|- | |- | ||
| 基本类型 | | 基本类型 | ||
| | | 16位系统 | ||
16位系统 | |||
| 32位系统 | | 32位系统 | ||
| 64位系统 | | 64位系统 | ||
第33行: | 第37行: | ||
| 1 | | 1 | ||
| 1 | | 1 | ||
| | | 1 | ||
|- | |- | ||
| short | | short | ||
| 2 | | 2 | ||
| 2 | | 2 | ||
| | | 2 | ||
|- | |- | ||
| int | | int | ||
| 2 | | 2 | ||
| 4 | | 4 | ||
| | | 4 | ||
|- | |- | ||
| unsigned | | unsigned | ||
| 2 | | 2 | ||
| 4 | | 4 | ||
| | | 4 | ||
|- | |- | ||
| long | | long | ||
| 4 | | 4 | ||
| 4 | | 4 | ||
| | | 8 | ||
|- | |- | ||
| float | | float | ||
| 4 | | 4 | ||
| 4 | | 4 | ||
| | | 4 | ||
|- | |- | ||
| double | | double | ||
| 8 | | 8 | ||
| 8 | | 8 | ||
| | | 8 | ||
|- | |- | ||
| long double | | long double | ||
第111行: | 第115行: | ||
定义方式: | 定义方式: | ||
'''类型说明符 数组名[常量表达式]''' | '''类型说明符 数组名[常量表达式];''' | ||
例: | 例: | ||
int a[10] | int a[10]; | ||
上述表示定义了一个整形数组,数组名为a,该数组有10个元素 | 上述表示定义了一个整形数组,数组名为a,该数组有10个元素 | ||
第126行: | 第130行: | ||
==== 二维数组 ==== | ==== 二维数组 ==== | ||
定义方式: | |||
'''类型说明符 数组名[数量表达式][常量表达式];''' | |||
例; | |||
float a[3][4] , b[5][10]; | |||
上述表示定义a为3X4(3行4列)的数组,b为5X10(5行10列)的数组 | |||
==== 三维数组 ==== | ==== 三维数组 ==== | ||
第132行: | 第145行: | ||
=== 链表 === | === 链表 === | ||
链表是一种常见的动态地进行存储分配的一种重要的数据结构 | |||
它没有数组存放数据时,必须事先定义固定长度的缺点,它根据需要开辟内在单元. | |||
链表有一个"头指针"变量,存放一个地址,该地址指向一个元素. | |||
链表中每一个元素称为"结点",每个结点都包括两个部分:用户块根的实际数据和下一个结点的地址. | |||
链表中各个元素可以不是连续存放. | |||
链表必须利用指针变量才能实现. | |||
=== 结构体 === | === 结构体 === | ||
把若干个类型不同(也可以相同)的数据项组织在一个组合项的数据结构,称为结构体. | |||
声明形式: | |||
''' struct 结构体名 | |||
{成员表列};''' | |||
"成员列表"也可称为"域表" | |||
例; | |||
struct student | |||
{int num; | |||
char name[20]; | |||
char sex; | |||
int age; | |||
float score; | |||
char addr[30]; | |||
}; | |||
"结构体名"用作结构体类型的标志,它又称"结构体标记"(structure tag). | |||
大括号内是该结构体中的各个成员,对各个成员都应进行类型声明: | |||
''' 类型名 成员名;''' | |||
每一个成员也称为结构体中的一个域,命名规则与变量名相同. | |||
=== 共用体 === | === 共用体 === | ||
使几个不同的变量共占同一段内存的结构,称为"共用体"类型的结构. | |||
定义形式; | |||
'''union 共用体名''' | |||
{'''成员表列''' | |||
}'''变量表列;''' | |||
例: | |||
union data | |||
{int i; | |||
char ch; | |||
float f; | |||
}a,b,c; | |||
也可将声明和变量定义分开. | |||
"共用体"和"结构体"定义形式相似,但含义不同: | |||
结构体变量所占内存长度是各成员的内存长度之和; | |||
共用体变量所占的内存长度等于最长的成员长度. | |||
== 运算 == | == 运算 == | ||
第152行: | 第219行: | ||
== if语句 == | == if语句 == | ||
C语言提供了3种形式的if语句 | |||
1. | |||
'''if(表达式) 语句''' | |||
例: | |||
if(x>y)printf("%d",x); | |||
2. | |||
'''if(表达式) 语句1 else 语句2''' | |||
例: | |||
if(x>y) | |||
printf("%d",x); | |||
else | |||
printf("%d",y); | |||
3. | |||
'''if(表达式) 语句1''' | |||
'''else if(表达式) 语句2''' | |||
'''else if(表达式) 语句3''' | |||
'''……''' | |||
'''else if(表达式)语句m''' | |||
'''else 语句 n''' | |||
例: | |||
if(number>500) cost=0.15; | |||
else if(number>300) cost=0.10; | |||
else if(number>100) cost=0.075; | |||
else if(number>50) cost=0.05; | |||
else cost=0; | |||
== for语句 == | == for语句 == |
2014年12月25日 (四) 11:20的最新版本
数据
基本数据类型
基本数据类型主要可以划分为由字符,整形,浮点数据,同时这些数据类型都可以分为有符号,和无符号两种,完整的数据类型定义如下, 按照LINUX的习惯内"[]"中的内容表示可以省略:
✿按照占用内存大小排序
- [signed] char
- unsigned char
- [signed] short [int]
- unsigned short [int]
- [signed] int
- [unsigned] int
- [signed] long [int]
- unsigned long [int]
- [signed] float
- unsigned float
- [signed] double unsigned double
- long double
- signed
- unsigned
sizeof
返回一个对象或者类型所占的内存字节数1
typedef
各类型数据占据内存大小
基本类型 | 16位系统 | 32位系统 | 64位系统 |
char | 1 | 1 | 1 |
short | 2 | 2 | 2 |
int | 2 | 4 | 4 |
unsigned | 2 | 4 | 4 |
long | 4 | 4 | 8 |
float | 4 | 4 | 4 |
double | 8 | 8 | 8 |
long double |
转义字符
- \a 响铃
- \b 退格
- \n 换行
- \r 回车
- \f 换页
- \t 水平制表符
- \v 垂直制表符
- \\ 斜杠 “ \ ”
- \' 单引号“ ' ”
- \" 双引号“ " ”
- \ddd 八进制
- \xhh 十六进制
C语言数据结构
可以把指针,字符串,数组,链表,结构体,共用体,认为C语言中常用的数据结构,熟练的使用数据结构可以高效的处理各种类型的数据。
指针
完整地说,指针由两部分组成,指针类型+标识符,举个例子:比如:
char *a="hello";
* 代表指针
a 表示地址,
*a 这才一个完整的指针变量,完整的意义是指向字符型变量a内这个地址为首的储存地址内的连续内容为:" hello "
字符串
字符串常量是一对双撇号括起来的字符序列 如,下列是四个合法的字符串常量:
"How do you do" , "CHINA" , "a" , "$123.45"
注意,不能将字符串常量赋给字符变量.
数组
一维数组
定义方式:
类型说明符 数组名[常量表达式];
例:
int a[10];
上述表示定义了一个整形数组,数组名为a,该数组有10个元素
说明:
1. 数组名的命名规则和变量名相同,遵循标识符命名规则
2. 定义数组时,需指定数组长度,即数组中元素的个数
3. 常量表达式中不有包含变量,可以包含常量和符号常量
二维数组
定义方式:
类型说明符 数组名[数量表达式][常量表达式];
例;
float a[3][4] , b[5][10];
上述表示定义a为3X4(3行4列)的数组,b为5X10(5行10列)的数组
三维数组
多维数组
链表
链表是一种常见的动态地进行存储分配的一种重要的数据结构
它没有数组存放数据时,必须事先定义固定长度的缺点,它根据需要开辟内在单元.
链表有一个"头指针"变量,存放一个地址,该地址指向一个元素.
链表中每一个元素称为"结点",每个结点都包括两个部分:用户块根的实际数据和下一个结点的地址.
链表中各个元素可以不是连续存放.
链表必须利用指针变量才能实现.
结构体
把若干个类型不同(也可以相同)的数据项组织在一个组合项的数据结构,称为结构体.
声明形式:
struct 结构体名 {成员表列};
"成员列表"也可称为"域表" 例;
struct student {int num; char name[20]; char sex; int age; float score; char addr[30]; };
"结构体名"用作结构体类型的标志,它又称"结构体标记"(structure tag). 大括号内是该结构体中的各个成员,对各个成员都应进行类型声明:
类型名 成员名;
每一个成员也称为结构体中的一个域,命名规则与变量名相同.
共用体
使几个不同的变量共占同一段内存的结构,称为"共用体"类型的结构.
定义形式;
union 共用体名 {成员表列 }变量表列;
例:
union data {int i; char ch; float f; }a,b,c;
也可将声明和变量定义分开.
"共用体"和"结构体"定义形式相似,但含义不同:
结构体变量所占内存长度是各成员的内存长度之和;
共用体变量所占的内存长度等于最长的成员长度.
运算
数值运算
关系运算
逻辑运算
条件运算
位运算
语句
if语句
C语言提供了3种形式的if语句
1.
if(表达式) 语句
例:
if(x>y)printf("%d",x);
2.
if(表达式) 语句1 else 语句2
例:
if(x>y) printf("%d",x); else printf("%d",y);
3.
if(表达式) 语句1 else if(表达式) 语句2 else if(表达式) 语句3 …… else if(表达式)语句m else 语句 n
例:
if(number>500) cost=0.15; else if(number>300) cost=0.10; else if(number>100) cost=0.075; else if(number>50) cost=0.05; else cost=0;
for语句
do语句
continue语句
break语句
switch语句
goto语句
return语句
预处理
参考文献
- C程序设计(第三版本) 谭浩强著
- A BooK on C Programming in C Fourth Edtion (美)Al Kelley Ira Pohl 著 徐波 译
- 数据结构(C语言版本) 陈明 著