




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 C 语言知识要点语言知识要点 转给那些还没把书看完的同志们转给那些还没把书看完的同志们 1 C 源程序的框架 尽管各个 C 源程序的功能千变万化 但框架是不变的 主要有 编译预处理 主函数 函数 n 等 主函数的位置不一定在最前面 可以在程序的中部或后面 主函数的名字固 定为 main 2 C 语言源程序的书写规则 1 C 源程序是由一个主函数和若干个其它函数组成的 2 函数名后必须有小括号 函数体放在大括号内 3 C 程序必须用小写字母书写 4 每句的末尾加分号 5 可以一行多句 6 可以一句多行 7 可以在程序的任何位置加注释 3 语句种类 语句是程序的基本成分 程序的执行就是通过一条条语句的执行而得以实现的 根据表现 形式及功能的不同 C 语言的基本语句可以分为五大类 1 流程控制语句 流程控制语句的功能是控制程序的走向 程序的流程有三种基本结构 顺序结构 分支结 构和循环结构 任何复杂的程序都可以由这三种基本结构复合而成 其中后两种结构要用 特定的流程控制语句实现 2 表达式语句 表达式语句的形式是 表达式 即表达式后跟一分号 分号是语句结束符 是一个 语句必不可少的成分 表达式和表达式语句的区别在于表达式代表的是一个数值 而表达 式语句则代表一种动作 最常见的表达式语句是赋值语句 3 函数调用语句 函数调用语句实际上也是一种表达式语句 形式为 在一次函数调用的小括号后面加上一 个分号 4 空语句 空语句的形式就是一个分号 它不代表任何动作 常常作为一个意义转折点使用 5 复合语句 复合语句从形式上看是多个语句的组合 但在语法意义上它只相当于一个语句 在任何单 一语句存在的地方都可以是复合语句 注意复合语句中最后一个语句末尾的分号不能少 复合语句右大括号后面没有分号 4 运算符 用来表示数据各种操作的符号称为运算符 运算符实际上代表了一种类型数据的运算规则 不同的运算符具有不同的运算规则 其操作的数据类型必须符合该运算符的要求 运算结 果的数据类型也是固定的 根据参加操作的数据个数多少 可以将 C 语言的运算符分为单目运算符 双目运算符和三 目运算符 三目运算符只有条件运算符一个 根据运算对象和运算结果的数据类型可分为算术运算符 关系运算符 逻辑运算符等 5 表达式 表达式是由常量 变量 函数 通过运算符连接起来而形成的一个算式 一个常量 一个 变量或一个函数都可以看成是一个表达式 2 表达式的种类有 算术表达式 关系表达式 逻辑表达式 赋值表达式 字位表达式 强制类型转换表达式 逗号表达式 顺序表达式 条件表达式 指针表达式 6 数据的输入 输出 C 语言本身没有输人 输出语句 数据的输入 输出是通过调用库函数来实现的 第二章第二章 数据类型知识点数据类型知识点 划分数据类型的意义是编译系统对每个不同类型的数据在内存中分配的字节数不同 不同类型的数据可以按规定参加不同类型的运算 1 C 语言的数据类型 数据类型有 整型 字符型 实型单精度型 双精度型 构造类型数组类型 结构体类型 共用体类型 枚举类型 指针类型 空类型 其中整型 实型 字符型是 C 语言中的基本 类型 2 各种类型数据的定义方法 定义形式 数据类型 变量名 1 变量名 2 变量名 n 3 常量与变量 1 常量 在程序执行期间其值不变的量 它不能被赋值 2 变量 在程序运行期间其值可以改变的量 4 各种类型数据的混合运算 各类数据运算前会自动转换成同一类型 规律如右图示 从右向左的箭头表示必定的转换 如 float 型数据运算前化成 double 型 以提高运算精度 结果也为 double 型 short 或 char 型数据运算前化成 int 型 结果也为 int 型 从下向上的箭头表示转换方向是向级别高 的靠拢 5 强制类型变换 当我们需要对数据进行类型变换 而机器又不能自动完成时 就要用强制类型变换 形式 为 数据类型符 被转换对象 第三章第三章 选择知识点选择知识点 C 语言中实现选择结构的控制语句有两种 条件分支语句 if 和开关分支语句 switch 1 if 语句的三种形式 1 if 表达式 语句 2 if 表达式 语句 1 else 语句 2 3 if 表达式 1 语句 1 else if 表达式 2 语句 2 else if 表达式 3 语句 3 else if 表达式 n 语句 n 2 开关分支语句 switch 1 形式 switch 表达式 case e1 语句 1 break case e2 语句 2 break case e3 语句 3 break 3 case en 语句 n break default 语句 n 1 2 功能 当表达式的值等于 e1 时 执行语句 1 当表达式的值等于 e2 时 执行语句 2 当表达式的值等于 en 时 执行语句 n 当表达式的值与常量 e1 e2 en 谁都不等时 就执行 default 后的语句 第四章第四章 循环知识点循环知识点 循环就是在程序执行过程中 反复多次的执行同一段程序 C 语言中有三种循环语句 1 while 循环语句 形式为 while 表达式 循环体 执行过程是 先计算表达式的值 当表达式的值非 0 时就执行循环体 之后再判断表达式 的值 且重复以上过程 当表达式的值为 0 时就结束循环 2 do while 循环语句 形式为 do 循环体 while 表达式 执行过程是 先执行循环体一次 再判断表达式的值 当表达式的值非 0 时就再执行循环 体 之后再判断表达式的值 且重复以上过程 当表达式的值为 0 时就结束循环 3 for 循环语句 形式为 for 表达式 1 表达式 2 表达式 3 循环体 4 三种循环语句的比较 三种循环语句可以完成同一件事 可任选其一 使用 while 和 do while 循环时 要提前给循环变量赋初值 而 for 循环是在表达式 1 中赋 初值的 while 循环和 for 循环都是先判断条件后执行循环体 有可能一次也不执行循环体 do while 循环是先执行循环体 后判断条件 即循环体至少也得执行一次 for 循环不限于计 数循环 其循环条件可以是逻辑表达式和字符表达式等 5 循环嵌套 三种循环控制语句可以互相嵌套 即在一个循环体内部又可以出现另一循环 这种嵌套在 理论上来说可以是无限的 注意必须是一个循环完整的套住另一个循环 6 break 语句 break 语句只能出现在三种循环语句和 switch 多分支语句中 其作用是用来中断这四种语 句的执行 当程序执行到 break 语句时 会跳出 break 语句所在的循环或 switch 分支 而 直接执行紧跟在它们后面的语句 4 7 continue 语句 continue 语句只能出现在三种循环语句中 当程序执行到 continue 语句时 其作用是提前 结束本次循环 自动跳过循环体中后半部剩余的语句的执行 而直接回到循环条件判断 根据判断的结果决定是否继续执行下次循环 8 goto 语句 goto 语句是一种非结构化语句 其作用是使程序的执行无条件的转移到某一处 使用格式 为 goto 标号 利用 goto 语句与 if 条件语句配合 也可以实现条件循环 C 语句允许在任 何语句前添加标号 作为跳转目标 标号的构成是标识符后面加一个 第五章第五章 数组知识点数组知识点 数组就是同类型的一批数据的集合 用一个变量名存放 区分各元素的办法是用下标 1 一维数组 类型说明符数组名 数组长度 1 数组命名要符合标识符的命名规则 2 数组名后的括号必须是方括号 不能是圆括号 3 数组长度必须是正整数 可以是个表达式 但不能有变量 C 语言不支持动态数组 4 数组长度表示数组中元素的个数 5 数组元素的下标从 0 开始数 所以最大下标是数组的长度减 1 2 多维数组 以二维为例 类型说明符数组名 第一维长度 第二维长度 1 数组命名要符合标识符的命名规则 2 数组名后的括号必须是两个方括号 定义时不能写成 inta 3 4 3 数组长度必须是整型常量表达式 4 第一维长度表示数组行数 第二维长度表示数组列数 5 每个数组元素都有两个下标 第一维表示该元素所在的行 第二维表示该元素所在的列 每一维的下标都从 0 开始数 二维数组的初始化 C 语言规定只有静态数组和外部数组才允许在定义时赋初值 赋初值 形式如下 static 类型说明符数组名 第一维长度 第二维长度 初值表 二维数组的引用 二维数组不能整体引用 要引用数组的单个元素 形式为 数组名 下 标 下标 和普通变量的使用无任何区别 3 字符数组 C 语言中没有字符串变量 字符串是靠字符数组实现的 所谓字符数组就是元素的数据类 型为字符型的数组 1 字符数组的定义形式 char 数组名 数组长度 因为 C 语言中的整型数据和字符型数据是相通的 所以也可以这样定义 int 数组名 数组 长度 2 字符数组的初始化 给字符数组的初始化有两种方式 一种是用字符常量 另一种是用 字符串 形式如下 staticchar 数组名 数组长度 字符常量表 staticchar 数组名 数组长度 字符串常量 4 数组与函数 数组经常作为函数的参数 数组做函数的参数有两种形式 一是数组元素做函数的参数 一是数组名做函数的参数 当用数组名做函数的实参时传送的是首地址 5 5 常用的字符串处理函数 C 语言提供了一些处理字符串的标准函数 用以完成一些常见的操作 对以下几个函数要 掌握其功能和调用形式 1 gets 字符数组名 此函数功能是从键盘输入一串字符 回车后送到字符数组中 注意定 义数组时数组长度要足够大 2 puts 字符数组名 此函数功能是将字符数组的内容输出到屏幕上 3 strcat 字符数组名 1 字符数组名 2 此函数功能是将字符数组 1 中的 0 去掉后将字符 数组 2 的内容连接到字符数组 1 的末尾 4 strcpy 字符数组名 1 字符数组名 2 函数功能是将字符数组 2 的内容 包括 0 拷贝到 字符数组 1 中 字符数组 2 处也可以是字符串常量 strcpy 函数可以实现拷子串 5 strcmp 字符数组名 1 字符数组名 2 函数功能是两个字符串 ASCII 码 比大小 6 strlen 字符数组名 此函数功能是求字符串的长度 注意不包括 0 7 strlwr 字符数组名 此函数功能是将字符串中的所有大写字母都变成小写 8 strupr 字符数组名 此函数功能是将字符串中的所有小写字母都变成大写 第六章第六章 函数知识点函数知识点 每个 C 源程序都是由函数组成的 一个主函数和若干个其它函数 C 语言程序设计的基础 工作就是函数的具体编写 C 语言中的函数就相当于其它高级语言中的子程序 1 函数的概念 函数就是一个数据加工厂 从函数外部接收数据 在函数内部加工处理 然后得到一个结果 返回给外部的调用者 所以函数就是对语言功能的扩充 对函数的调用就是对功能的调用 2 标准函数 各种高级语言都定义了一些标准函数 C 语言中的标准函数称为库函数 是将一些基本的 常用的功能编成了函数 供大家使用方便 使用库函数时必须把它的头文件用 i nclude 命令包含进来 每个库函数的功能及对应的头文件都会在手册中给出 3 自定义函数 C 语言也允许用户自己编写函数以实现 C 库函数中没有提供的功能 称作自定义函数 4 定义函数 C 语言规定每个函数都要独立定义 函数定义不能嵌套 函数定义的形式 数据类型函数名 形参表 形参说明语句序列 说明语句序列 可执行语句序列 5 函数调用 函数调用的形式是 函数名 实参表 当实参表中有多个参数时 要用逗号隔开 若被调 函数无参数 调用时小括号也不能省 函数调用过程是 将实参的值传给形参 在函数体内 进行加工处理 然后由 return 语句将函数值返回调用处 5 全局变量和局部变量 局部变量 在函数内部定义的变量称为局部变量 只在本函数中有效 全局变量 在函数外部定义的变量称为全局变量 它的作用范围是从定义开始到本文件结 束 6 动态存储与静态存储 6 内存中的用户数据区分为动态存储区和静态存储区 动态存储区是指程序运行期间给变量 临时分配存储单元 变量用完后立即释放单元的区域 动态存储区放的是函数的形参 自 动变量 函数调用期间的现场保护数据和返回地址 静态存储区是指程序运行期间给变量分配固定的存储单元 放的是全局变量和局部静态变 量 一个变量除了它的数据类型以外还有存储类型 定义一个变量时应该说明这两种类型 第七章第七章 预处理知识点预处理知识点 对高级语言编译连接就是把源程序转换成机器语言 C 语言在进行编译之前还要预先 处理三件事 宏定义命令 文件包含命令和条件编译命令 统称为预处理命令 其特点是 1 所有的预处理命令都放在程序的头部 以 开头 且 号后面不留空格 2 预处理命令不是 C 的语句 行尾不加分号 3 预处理命令是在编译预处理阶段完成的 所以它们没有任何计算 操作等执行功能 4 预处理命令有所变动后 必须对程序重新进行编译和连接 1 宏定义 宏定义命令的作用是给一些常用的对象重新命名 在程序中可以用宏名来引用这些对象 预处理时宏名会被代表的内容替换 此过程称为宏展开或宏替换 宏定义有两种形式 2 文件包含 使用文件包含命令可以将另 个 C 源程序的全部内容包含进来 其形式为 i nclude 文件名 或 i nclude 文件名 通常可以把经常用到的 带公用性的一些函数或符号等集合在 起形成一个源文件 然后 用此命令将这个源文件包含进来 这样可以避免在每个新程序中都要重新键入这些内容 3 条件编译 顾名思义满足条件时进行编译 为了解决程序移植问题 C 语言提供了条件编译命令 它 能使源程序在不同的编译环境下生成不同的目标代码文件 条件编译命令有 3 种形式 第八章第八章 指针知识点指针知识点 1 什么是指针和指针变量 指针就是内存地址 因为通过 地址 可以找到变量 所以内存 地址 形象的称为指针 指针变量就是存地址的变量 在 C 语言中用一个变量存另一个变量的地址 那么就称这个 变量为指针变量 指针变量的值就是地址 通常指针变量被简称为指针 指针变量是有类型的 即指针值增 1 表示指向下一个数据 如整型数据在内存中占两个字 节 它的指针变量增 1 是增两个字节 如实型数据在内存中占 4 个字节 它的指针变量增 1 是增 4 个字节 2 怎样定义指针变量 定义形式为 数据类型 指针变量名 1 指针变量名 2 3 指针的有关运算 指针为内存地址是整数 可以进行一些算术运算 关系运算 赋值运算 特殊运算等 但 要注意运算代表的实际意义 4 指向数组的指针变量 1 指向数组元素的指针变量定义形式为 inta 10 int p a 2 指向一维数组的指针变量 7 定义形式为 inta 3 4 int p 4 p a 3 指向字符串的指针变量 定义形式为 char p 字符序列 C 语言中的字符串是以隐含形式的字符数组存放的 定义了指针变量 p 并不是将整个字符 串都存放在 p 中了 而 p 中存放的是字符串的首地址 5 指向函数的指针变量 一个函数在编译时被分配一个入口地址 这个地址就是函数的指针 可以用一个指针变量 指向它 指向函数的指针变量定义形式为 数据类型 指针变量名 6 指针变量做函数的参数 1 指针作函数的参数可以传送地址 如数组的首地址 函数的入口地址等 2 指针作函数的参数也可以用地址方式传送数据 7 返回值是指针的函数 即函数的返回值是内存的地址 利用这种方法可以将一个以上的数据返回给函数的调用者 定义形式如下 数据类型 函数名 形参表 8 指针数组 定义形式为 数据类型 数组名 数组长度 数组中的每个元素都是指针类型的数据 这种数组被称为指针数组 9 指向指针的指针 定义形式为 数据类型 指针变量名 指向指针数据的指针变量称为指向指针的指针 10 main 函数的形参 main 函数可以带两个形参 如 main argc argv intargc char argv 11 指向结构体的指针变量 结构体变量的指针就是该变量所占据的内存段的首地址 指向结构体的指针变量定义形式 为 struct 结构体类型名 指针变量名 12 指向共用体的指针变量 共用体变量的指针就是该变量所占据的内存段的首地址 指向共用体的指针变量定义形式 为 union 共用体类型名 指针变量名 替换了的字符时 这里为正中间的字符 4 原来的字符己不复存在 第九章第九章 结构体与共用体知识点结构体与共用体知识点 结构体类型是 C 语言的一种构造数据类型 它是多个相关的不同类型数据的集合 相当于 其它高级语言中的记录 1 结构体类型定义 8 结构体类型的形式为 struct 结构体类型名 数据类型成员名 1 数据类型成员名 n 2 结构体变量的定义 结构体变量有三种定义形式 1 先定义结构体类型 后定义结构体变量 2 定义结构体类型的同时定义结构体变量 3 不定义结构体类型名 直接定义结构体变量 3 结构体变量的引用 1 结构体变量的初始化 许多 C 版本规定对外部或静态存储类型的结构体变量可以进行初 始化 而对局部的结构体变量则不可以 新标准 C 无此限制 允许在定义时对自动变量初 始化 2 结构体成员的引用 由于 C 语言一般不允许对结构体变量的整体引用 所以对结构体的 引用只能是对分量的引用 结构体变量中的任一分量可以表示为 结构体变量名 成员名 4 结构体与数组 C 语言中数组的成员可以是结构体变量 结构体变量的成员也可以是数组 结构体数组有三种定义形式 1 先定义结构体类型 后定义结构体数组 2 定义结构体类型的同时定义结构体数组 3 不定义结构体类型名 直接定义结构体变量 5 结构体与指针 一方面结构体变量中的成员可以是指针变量 另一方面也可以定义指向结构体的指针变量 指向结构体的指针变量的值是某一结构体变量在内存中的首地址 结构体指针的定义形式 struct 结构体类型名 结构体指针变量名 由结构体指针引用结构体成员的方法 6 用指针处理链表 结构体的成员可以是指针类型 并且这个指针类型就是本结构体类型的 这样可以构造出 一种动态数据结构 成为链表 所谓动态数据就是指在编译时不能确定数据量的多少 而 是在程序执行时才确定的数据 动态数据可以比较方便的进行数据插人或删除等操作 7 结构体与函数 结构体变量的成员可以作函数的参数 指向结构体变
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业废弃物资源化利用政策咨询创新创业项目商业计划书
- 教师招聘之《幼儿教师招聘》复习试题带答案详解
- 押题宝典教师招聘之《小学教师招聘》考试题库附答案详解【达标题】
- 微型企业面试高频题答题技巧及答案详解1套
- 教师招聘之《小学教师招聘》练习题附完整答案详解(必刷)
- 2025年四川天府新区党工委管委会工作机构所属事业单位选调10人笔试备考题库及参考答案详解一套
- 2025年教师招聘之《幼儿教师招聘》考试题库带答案详解(模拟题)
- 2025年北京银行长沙分行社会招聘笔试备考题库及答案解析
- 合肥市非国有博物馆的现状、困境与发展路径研究
- 2025年泌尿外科手术技术操作模拟考核答案及解析
- 离散数学基础:数理逻辑导论 - 计算机科学系- 中山大学
- ERCP均衡风缸控制模块Corecompetencetra
- 2024秋新人教版小学一年级艺术唱游·音乐上册《第一单元 奇妙的声音世界》教案设计
- 2025年中国三氯乙烯市场调查研究报告
- 110kV架空线路工程施工方案
- 售电业务知识培训课件
- 2025年工程造价职业技能比武竞赛参考试题库500题(含答案)
- 酒吧装修合同要求
- 2025年机械校招笔试试题及答案
- 银行金融产品风险管理与应对策略探讨
- DBJ51T 184-2021 四川省预成孔植桩技术标准
评论
0/150
提交评论