个人工具

“C语言简要语法指南”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
一维数组
sizeof
 
(未显示3个用户的10个中间版本)
第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] 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位系统&nbsp;
+
 
+
 
| 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  
第141行: 第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;
 +
 +
也可将声明和变量定义分开.
 +
 +
"共用体"和"结构体"定义形式相似,但含义不同:
 +
 +
结构体变量所占内存长度是各成员的内存长度之和;
 +
 +
共用体变量所占的内存长度等于最长的成员长度.
  
 
== 运算  ==
 
== 运算  ==
第161行: 第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语言版本) 陈明 著