### C Reference Card详解 #### 程序结构与函数 在C语言中,程序由一个或多个函数组成,其中必须包含一个`main`函数作为程序的入口点。 **程序结构:** - **类型声明**: `type`定义了变量的数据类型。 - **函数原型**: `function prototype`用于提前声明函数的存在,方便编译器进行调用检查。 - **类型名声明**: `typename;`用于声明数据类型。 - **变量声明**: `typename;`用于声明一个或多个变量。 - **主函数**: `int main(void)`是程序执行的起点。 - **局部变量声明**: 在函数内部声明的变量,其作用域仅限于该函数。 - **语句**: 实现具体的功能逻辑。 **函数定义:** - **函数定义**: `type fnc(arg1, arg2)`用于定义一个函数,其中`arg1`、`arg2`等为参数列表。 - **声明**: 在函数体中声明局部变量。 - **局部变量声明**: 在函数内部声明的变量。 - **语句**: 函数中的操作指令。 - **返回值**: `return value;`用于指定函数返回的结果。 **注释**: - 单行注释: `//`后跟注释内容。 - 多行注释: `/* */`括起来的文本被视为注释。 **带参数的主函数**: - **主函数接收参数**: `int main(int argc, char *argv[])`,其中`argc`表示命令行参数的数量(包括程序名),`argv`是一个指向命令行参数字符串数组的指针。 - **终止执行**: `exit(arg);`用于终止程序执行并返回一个状态值。 #### C预处理器 C预处理器是C编译器的一个组件,负责处理源代码中的预处理指令。 **包含库文件**: - `#include <filename>`用于包含标准库文件。 - `#include "filename"`用于包含用户自定义的头文件。 **宏定义**: - 宏定义可以定义一个名称来替换一段文本。 - **文本替换**: `#define name text`定义了一个宏`name`,它会被替换为`text`。 - **带有参数的宏**: `#define name(var) text`定义了一个带有参数的宏,其中`var`是参数,`text`是被替换的文本。 - **取消宏定义**: `#undef name`用于取消对宏`name`的定义。 - **字符串化**: `#`操作符可以将宏参数转换为字符串。 - **连接操作符**: `##`用于将两个标识符连接成一个新的标识符。 - **条件执行**: `#if`、`#else`、`#elif`、`#endif`用于控制预处理指令的执行。 - **检查宏是否已定义**: `#ifdef`、`#ifndef`用于检查宏是否已经定义。 - **宏是否已定义**: `defined(name)`判断宏`name`是否已定义。 - **行继续字符**: `\`用于指示一行的结尾不是语句的结束。 #### 数据类型与声明 C语言提供了多种基本数据类型和复合数据类型。 **基本数据类型**: - **字符型**: `char`占用1字节。 - **整型**: `int`。 - **浮点型**: `float`、`double`。 - **短整型**: `short`(16位整数)。 - **长整型**: `long`(32位整数)。 - **双长整型**: `long long`(64位整数)。 - **有符号整型**: `signed`表示既可以存储正数也可以存储负数。 - **无符号整型**: `unsigned`表示只能存储非负数。 **复合数据类型**: - **指针**: `int*`、`float*`等。 - **枚举**: `enum tag { name1 = value1, ... }`定义了一组枚举常量。 - **常量**: `type const name;`声明了一个只读变量。 - **外部变量**: `extern`声明了一个在其他文件中定义的变量。 - **静态变量**: `static`用于声明变量只在当前源文件中可见。 - **空类型**: `void`表示没有任何类型。 **结构体**: - **声明结构体**: `struct tag {}`定义了一个结构体类型。 - **结构体类型重命名**: `typedef typename;`为类型定义别名。 **对象大小**: - **对象大小**: `sizeof object`获取对象的大小。 - **类型大小**: `sizeof(type)`获取类型的大小。 **初始化**: - **变量初始化**: `typename = value;`初始化变量。 - **数组初始化**: `typename[] = { value1, ... };`初始化数组。 - **字符数组初始化**: `char name[] = "string";`初始化字符数组。 **常量**: - **长整型后缀**: `65536L`表示长整型。 - **无符号后缀**: `-1U`表示无符号整型。 - **单精度浮点数**: `3.0F`表示单精度浮点数。 - **指数形式**: `4.2e1`表示科学计数法。 - **八进制前缀**: `0`表示八进制。 - **十六进制前缀**: `0x`或`0X`表示十六进制。 - **字符常量**: `'a'`、`'\ooo'`、`'\xhh'`分别表示普通字符、八进制转义序列和十六进制转义序列。 - **特殊字符**: `\n`、`\r`、`\t`、`\b`分别表示换行、回车、制表符和退格。 - **字符串常量**: `"abcde"`表示字符串常量,以`\0`结尾。 #### 指针、数组与结构体 **指针声明**: - `type *name;`声明了一个指向`type`类型数据的指针变量`name`。 - **函数返回指针**: `type *fnc(arg1, arg2)`声明了一个返回`type`类型指针的函数`fnc`。























- 粉丝: 5631
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 10kV氧化锌避雷器技术规范.doc
- 海氏评估系统因素表及说明.doc
- 知名房地产工程现场精细化管理讲义(附案例).pdf
- 白云国际会议中心花城厅(原一层多功能厅)维护保养、1号楼东座三楼客房改造项目招标文件(第一标段).docx
- 3d3s吊车梁设计流程.doc
- 微信小程序开发资源汇总 .zip
- 微信小程序-公众号热门文章信息流.zip
- 淘宝客项目,支持App,微信小程序,QQ小程序.zip
- 国家电网公司优秀QC成果1764页-1953页.docx
- 酒店类微信小程序模板.zip
- 软弱土地基处理—教学讲稿.ppt
- 安全文明施工监理细则.doc
- 对工程总承包相关问题的认识.doc
- 患者外跑应急演练脚本.doc
- 桥深基坑土钉墙支护施工方案.doc
- 11G101系平法新规则交底广联达实训课程.ppt


