C语言复习以及VC++开发环境

上传人:012****78 文档编号:125684904 上传时间:2020-03-19 格式:PPT 页数:53 大小:1.78MB
返回 下载 相关 举报
C语言复习以及VC++开发环境_第1页
第1页 / 共53页
C语言复习以及VC++开发环境_第2页
第2页 / 共53页
C语言复习以及VC++开发环境_第3页
第3页 / 共53页
C语言复习以及VC++开发环境_第4页
第4页 / 共53页
C语言复习以及VC++开发环境_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《C语言复习以及VC++开发环境》由会员分享,可在线阅读,更多相关《C语言复习以及VC++开发环境(53页珍藏版)》请在金锄头文库上搜索。

1、选择编程工具 目前流行两大语法体系 Basic语系和C语系 同 一个语系下语言的基本语法是一样 两大语系如 图3 3所示 C语系中 目前两大语言如日中天 C 和Java C 适宜 做系统软件的开发 Java更适宜做网络应用开发 C 的开发工具是VC 6 0和C Builder6 0 Java流行的开发工具比较多 比如 IBM公司的Visual Age和Websphere Studio Insprise公司JBuilder等等 C语系 C语言 C 语言 Java语言 Perl语言 C JavaScript Basic语系 Basic语言 VB6 0 VB NET VBScript VBA 学习W

2、indows下编程 学习语言 选择语言和工具是第一步 而且 是非常重要的一步工作 目前的编程语言那 么多 有C C C Java和汇编语言等等 虽然有很多语言 只要精通一门就够了 从 实用的角度来讲 C语系是较好的选择 而 微软公司的Visual C 和Insprise公司 原 Borland公司 的C Builder是其相应开发 工具的两大主流 C语言发展的四个阶段 C语言经过不断的发展 在编程体系中可以将 其分成四个阶段 1 面向过程的C语言 2 面向对象的C 语言 包括JAVA 3 SDK编程 4 MFC编程 Microsoft Foundation Class 微 软基类库 API与S

3、DK API是英文Application Programming Interface 的 缩写 意思是 应用程序接口 泛指系统为应用 程序提供的一系列函数接口 在编程的时候可以直接调用 而不必知道其内部实 现的过程 只知道它的原型和返回值就可以了 SDK是英文Software Development Kit的缩写 意思 是 软件开发工具包 微软提供了许多专门的SDK 开发包 比如DirectX开发包和语音识别开发包等等 类C语言的介绍 l1 算法描述方法 l2 语法错误与代码规范问题 l3 代码调试问题 l4 指针与数组 l5 结构 l6 程序与进程 1 本书书的算法描述 C 风格C风格 Co

4、nst TRUE 1 FALSE 0 OK 1 ERROR 0 enum bool TRUE FALSE enum Status OK ERROR define TRUE 1 define FALSE 0 define OK 1 define ERROR 0 1 类C语言的风格 2 数据元素的结构定义 typedef struct 数据元素的数据项中关键字 key 的定义 EtypeKey key 数据元素其它数据项定义 DataType data EType typedef int EtypeKey typedef student DataType 3 算法函数的描述 函数形式参数表 算法说

5、明 函数形式参数表中 以 void add int y y 1 2 void main int t 0 add t t int add int y y 1 2 return y t add t t 0t 3 t 3 较少一次的 内存分配示例1 4 内存空间的动态分配和释放 C 风格 分配 指针变量 new 数据类型 释放 delete 指针变量 C风格 分配 指针变量 malloc 数据类型 大小 释放空间 free 指针变量 5 输入输出语句 C 风格C风格 输入 cin 变量1 输出 cout 表达式1 输入 scanf 输出 printf 表达式 算法中使用的语句基本上与C 或C语言中是

6、一 致的 1 头文件 l include l用时称为标准方式 系统到存放C库头文 件所在的目录中寻找要包含的文件 l用 时 系统先在用户当前目录中寻找要 包含的文件 若找不到 再按标准方式查找 1 语法错误 变量和函数没有定义 可能是书写错误 也 可能是没有把相关文件包含进来 中西文输入法的问题 的个数出现问题 如果是link过程出现问题 一般是函数定义 的问题 2 语法错误与代码规范问题 只要是编译器能够识别的都是好解决的 编译出错 鼠标双击某一 error信息 自动定位 出错代码行 2 代码规范 TAB的使用 掌握在debug方式下设置断点的检查功能 35 程序编译成功 还需要 调试吗 l

7、3 代码调试问题 35void main char x x a void main unsigned k 1 sprintf s AAAAAAAA printf K d n k int x void main int t 1 x 5 add t t void add t x t K 0 x41414141 所有的代码是调试出来的 而不是 编 出来的 只有经过调试的代码才能保 证其可用 设置调试中的断点 调试按钮 显示当前变 量值 查看自定 义变量的 值 单步调试 调试菜单 1 F10 单步调试 2 F11 进入函数内部调试 3 Shift F11 从函数内部回 到调用函数 如main 4 Ct

8、rl F10 运行到光标处 5 Shift F5 终止调试过程 是一个重要概念 可以有效地表示复杂的数据结构 能动态分配内存 能方便地使用字符串 有效而方便地使用数组 能直接处理内存地址等 这对设计系统软件是很 必要的 指针的概念比较复杂 使用也比较灵活 十分小 心 4 指针 new delete int parr parr new int 100 返回类型为 int 类型 整数型指针 分配大小为 sizeof int 100 delete parr int p p new int 返回类型为int 类型 整数型指针 分配大小为 sizeof int delete p int p p new

9、int 5 分配大小为 sizeof int 5 for int i 0 icore 4 p v a p p core 4 p v b p p core 4 p v c 1 std 2 std 3 std 指针移动 数组 char a 5 for int i 0 ix 1 q y 2 q z 3 p positionNow x q x p positionNow y q y p positionNow z q z p name 0 a p name 1 b p mass 4 p next NULL 如果没有这 一行可以吗 结尾会出现 乱码 0 示例3 6 程序与进程 程序的源代码称为程序源代码

10、 源代码编 译后的二进制可执行文件称为程序 程序被运行起来后内存中和他相关的内存 资源和CPU 资源的总和称为进程 程序空间其实指的是进程中内存布局和内 存中的数据 再通俗点就是程序被运行起 来时其内存空间的布局 一个程序被编译完成后其运行时内部的内 存空间布局就已经确定 lint add int x int y l lreturn x y l lint main void l lint result add 129 127 lprintf nresult xi n resul t lreturn 0 l x55 x8b xec x83 xec x40 x53 x56 x57 x8d x7d

11、xc0 xb9 x10 x00 x00 x00 xb8 xcc xcc xcc xcc xf3 xab x8b x45 x08 x03 x45 x0c x5f x5e x5b x8b xe5 x5d xc3 ltypedef int PF int int lint main void l lunsigned char buff x55 x8b xec x83 xec x40 x53 x56 x57 x8d x7d xc0 xb 9 x10 x00 x00 x00 xb8 xcc xcc xcc xcc xf3 xab x8b x4 5 x08 x03 x45 x0c x5f x5e x5b x

12、8b xe5 x5d xc3 lPF pf lpf PF lint result pf 129 127 lprintf result i n result lreturn 0 l 1 结构体 2 常量或全局变量 a 3 自定义函数申明及实现 进程运行 主程序mian 1 定义局部变量b 2 函数1 调用 3 函数2 调用 4 结束 函数1 1 定义局部变量c 2 函数调用 3 返回其调用 或父 函数 函数2 调用 返回 通过参数的传递 及结果返回 调用 者和被调用建立 联系 1 在mian 能直接访问或修改 变量a b c 2 函数1 能直接访问或修改 变量a b c 共享空间 局部空间 局部

13、 空间 Malloc new free delete l函数声明 函数原型 void malloc int size 说明 malloc 向系统申请分配指定size个字节的内 存空间 返回类型是 void 类型 void 表示未确 定类型的指针 C C 规定 void 类型可以强制转 换为任何其它类型的指针 从函数声明上可以看出 malloc 和 new 至少有两 个不同 new 返回指定类型的指针 并且可以自动 计算所需要大小 比如 int p p new int 返回类型为int 类型 整数型指针 分配大小为 sizeof int delete p int parr parr new in

14、t 100 返回类型为 int 类型 整数型指针 分配大小为 sizeof int 100 delete parr 而 malloc 则必须由我们计算要字节数 并且在返回后强行 转换为实际类型的指针 int p p int malloc sizeof int free p 第一 malloc 函数返回的是 void 类型 如果你写成 p malloc sizeof int 则程序无法通过编译 报错 不能将 void 赋值给 int 类型变量 所以必须通过 int 来将强制转换 33 第二 函数的实参为 sizeof int 用于指明一个整型 数据需要的大小 如果你写成 int p int ma

15、lloc 1 代码也能通过编译 但事实上只分配了1个字节大小 的内存空间 当你往里头存入一个整数 就会有3个字节 无家可归 而直接 住进邻居家 造成的结果是后面 的内存中原有数据内容全部被清空 vmalloc 也可以达到 new 的效果 申请出一段连续 的内存 方法无非是指定你所需要内存大小 比如想分 配100个int类型的空间 int p int malloc sizeof int 100 分 配可以放得下100个整数的内存空间 q另外有一点不能直接看出的区别是 malloc 只管分 配内存 并不能对所得的内存进行初始化 所以得到 的一片新内存中 其值将是随机的 q除了分配及最后释放的方法不一样以外 通过 malloc或new得到指针 在其它操作上保持一致 q一般来说 原理是这样的 但是new and delete是 C 时代产生 并不是一个简单的malloc and free的 封装 若是用new 产生的对象 用 free可能发生意外 所以建议配对使用 用free它不执行析够函数 即 malloc free new delete

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号