C与Java对照总结.ppt

上传人:max****ui 文档编号:6329413 上传时间:2020-02-23 格式:PPT 页数:26 大小:432.50KB
返回 下载 相关 举报
C与Java对照总结.ppt_第1页
第1页 / 共26页
C与Java对照总结.ppt_第2页
第2页 / 共26页
C与Java对照总结.ppt_第3页
第3页 / 共26页
点击查看更多>>
资源描述
数据结构 主讲 鲁法明fm lu 课程相关 计算机学科核心课程多编程 手写 多调试 上机 本章要点 补充 Java与C对照总结 适用范围与特点C程序概述语法对照C指针与链表 1 1适用范围及特点 1 2C程序概述 voidmain 程序入口 主函数 printf HelloWorld 调用标准输出函数输出 C程序由函数构成 main函数是程序入口函数包括函数首部和函数体两部分函数体以 作为开始和结束的标志输入输出用库函数实现 需包含相应头文件语句以分号结束 文件包含等除外 换行无关程序中可用 加注释 单行亦可用 include 标准输入输出头文件 类似import 例1 1输出HelloWorld 例1 2令a 123 b 456 求两整数之和 includevoidmain inta b sum a 123 b 456 sum a b printf 变量sum值为 d sum 格式控制符 d c f 函数体分声明部分和执行部分变量必须先定义后使用定义变量实际就是在内存空闲区域中分配存储单元 对变量名赋值或取值就是对该存储单元进行读写 存储单元地址通过 例1 3输入2个数输出大者 定义max函数求大者 includevoidmain inta b c scanf d d 回车 n 函数分main函数 库函数和自定义函数函数首部包括返回值类型函数名参数及其类型若函数的具体定义出现在使用语句之后 则必须在使用前进行声明 intmax intx inty 形参 intz if x y z x 分支语句 elsez y return z intmax intx inty 函数声明 C程序结构小结 include define voidmain 函数次序可调 子函数声明与变量定义执行语句组 返回值类型函数名1 参数表 变量定义与函数声明执行语句组 返回值类型函数名n 参数表 变量定义与函数声明执行语句组 结构 由若干函数 main函数 库函数 自定义函数 组成 main函数是程序入口 函数包括函数首部和函数体两部分 函数体包括声明部分和执行部分 声明部分包括变量定义和函数的声明 执行部分包括各类语句 函数不能嵌套定义 函数与变量不能重名 找出以下源程序中存在的9处错误 intmax x y intz if x y z x elsez y return z voidmain scanf d d a b 读入两整数 用逗号分隔c max a b printf max c n c include inta b c 是否需要进行函数声明intmax intx inty d 1 变量未定义或函数使用前未声明 缺少头文件2 丢分号和 intint 1 3语法对照 数据类型 1 3语法对照 运算符 1 3语法对照 控制结构 1 3语法对照 函数 值传递参数 1 3语法对照 函数 参数引用传递 1 4指针与链表 谭浩强 C程序设计 第3版 第十章指针 基本概念指针的定义及用法指针在数组访问中的应用利用指针创建动态数组利用指针创建和操作链表 内存区的每一个字节有一个编号 该编号称为内存单元的地址或指针 若在程序中定义一个变量 在编译时会给其分配若干内存单元 其中第一个存储单元的编号称为该变量的地址或指针 inti shortj k scanf d d 直接访问 通过变量名存取值的方式间接访问 将变量的地址存放在另一变量 p 中 通过p访问变量 short pp scanf d p 地址指针变量的地址指针变量 某些变量专门用以存放别的变量的地址 称这类变量为指针变量 该类变量的类型称为指针类型 定义格式 基类型 指针变量名如 shortj short p p 1 通过指针对变量进行读写时如何知道需要读写的字节数 在定义指针变量时必须指定基类型 且变量的类型和指针的基类型要一致 2 指针类型与整数类型不同 只能将变量的地址赋给一个指针变量 而不能将一个常数赋给一个指针变量 零除外 代表NULL空地址 此外 指针变量加减1 则指针指向的单元变动并非1 而是基类型所占字节数 即以sizeof 基类型 为一个移动单位 3 指针运算符 在定义变量时用于指明所定义变量是指针类型 在普通语句中用于取指针变量所指向存储单元的值 如printf d p 指针变量的定义与用法 回顾 C程序由函数构成 包括main函数 库函数和自定义函数 函数不能嵌套定义 若先使用后实现 则需声明 库函数的声明在头文件中C语言中数组在定义时必须同时指定大小 而且大小必须为常数 不能为变量C语言中函数参数传递为值传递 C 中新加引用传递C语言中无boolean类型 0代表假 非零代表真C语言中有指针类型 指针变用以存储其它变量的地址 基类型决定能存储何类变量的地址 inti int p p C语言中 一维数组的数组名是指向数组首元素的指针常量 该指针常量的基类型与数组元素的类型相同 指针常量的值是数组的起始地址 可通过数组名用下标法访问数组元素 如果将该指针常量赋值给一个相应类型的指针变量 则也可借助指针变量用指针法访问数组元素 指针法访问数组 如 inta 10 int p a 也可用int p 说明 指针加1或减1则指针指向的单元移动并非1 而是根据基类型所占字节数移动 指针法速度比下标法快 利用指针创建动态数组 静态数组 voidmain inta 10 a为指针常量for inti 0 i 10 i scanf d voidmain inta 10 int p for p a p a 10 p scanf d p for p 0 p a 10 p printf d n p 动态数组 voidmain int a a为指针变量 可类似数组名用a int malloc 10 sizeof int for inti 0 i 10 i scanf d voidmain int a a int malloc 10 sizeof int int p for p a p a 10 p scanf d p for p 0 p a 10 p printf d n p 此程序中p可换作a 但a最好不变 动态存储分配函数 includevoid malloc unsignedsize voidfree void p 孙承爱 程序设计基础 基于C语言 链表 引言 数组元素依次存储在一片连续的内存单元中 这为成批数据存储带来两方面问题 其一 个数不确定时需定义一个最大长度 其二 向数组增加或删除一个数据时 需要移动大量元素 链表 一种动态地进行存储分配的数据结构 不需要事先确定最大长度 在插入或者删除一个元素时也不会引起大量数据的移动要求 掌握链表的基本结构 结构定义与链表的创建与输出 链表结构 结构 首 结点 尾 结点 中间结点 每个结点包括两部分 一部分是用户需要用的实际数据 称为数据域 另一部分是下一个结点的地址 称为指针域 头指针head指向链表的首结点 首结点与中间结点的指针域指向后继结点 表尾结点的指针域存放空地址 常表示为NULL 是值为0的符号常量 编程时需先定义 说明 1 链表中各元素在内存中的存储单元通常不连续 2 头指针至关重要 可标识或者代表整个单链表 声明一个链表实际就是声明一个基类型为结点类型的头指针 structLNode 单链表结点结构定义chardata 数据域structLNode next 指针域 StrcutLNodenode1 node2 定义两个结点structLNode La Lb 定义两个链表 或typedefstructLNodeLNode typedefstructLNode LinkList LNodenode1 node2 LinkListLa Lb 元素类型定义typedefcharElemType 链表定义 typedefstructLNode ElemTypedata 数据域structLNode next 指针域 LNode LinkList LNodenode1 node2 LinkListLa Lb 链表定义 链表的创建 voidCreateList LinkList 链表的输出 voidPrintList LinkListL LNode p L while p NULL printf c n p data p p next 思考 p为何不可 练习与作业 在主函数中定义含N个元素的整型数组并输入各元素的值 之后分别调用如下函数并测试sum函数求数组各元素值的总和average函数求各元素平均值 作业删除数组首元素 其后元素依次前移插入首元素 1 原有元素后移 作业inverse函数进行逆置设单链表中数据元素是student类型 主函数创建含N个元素的链表并实现以下操作取单链表第i个结点的值用引用型参数e带回分别编写函数删除单链表第一 第二个结点 作业分别编写函数在单链表表头和第二个结点前插入一个新结点
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!