




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计教学体会 孙志岗的 个人体会 代码风格 代码风格就是程序员的书法比书法好学得多 基本不需要特别练习但是坏习惯一旦养成 就像书法一样难以改变是最易获得和实践的软件工程规则对设计程序结构 培养团队精神都大有帮助不给学生看到任何一个风格糟糕的例子 代码风格 标识符命名宏全部大写Windows风格和Unix风格VariableNamevariable name缩进 位置的两种风格用4格tab还是用空格 空格增强单行清晰度每行代码长不要超过80空行自然段 表达式尽量简单 下面程序在不同编译器可能产生不同结果 而且可读性差a i i i printf d d d i i i for i 0 i 0很多教科书自作聪明地创造了很多复杂的题目来难为学生 就算它们的用法正确 实践中也未必用得到 全局变量要避免使用吗 全局变量增大了模块之间的耦合度 而且不利于排错 罪大恶极这罪恶不能怪全局变量 只能怪无限制的对全局变量的改写不要让全局变量有复杂的数据结构一旦数据结构变了 真的大祸临头了最好利用static特性用函数对其进行封装 不要把goto判处死刑 问题不是出在goto 而是出在对标号的滥用结构化程序设计中一个被忽视的原则单入口 单出口只要符合此原则 什么都可以用goto在处理异常流程问题时 非常好用退出多重循环统一的错误处理 吓死人的指针 指针 出现 难 字当头老师吓学生 学生再吓学生的学生 从原理上了解指针 它是那么简单一个普通变量 其值是一个内存地址格守下列原则 指针使用永不出错永远要清楚每个指针指向了哪里永远要清楚指针指向的位置是什么 指针的兄弟 数组 不要把数组和指针分开 它们是紧密相连的数组最简单数组名是指针 数组成员是变量多维数组麻烦些关键要知道它在内存中是怎么分布的 脑细胞可贵 千万别用来背 算符优先级知道先算括号足以这样方便自己 也方便他人库函数用法会查联机帮助 手册最重要 变量占用的字节数 不同平台 不同编译器 可能会迥然不同struct占字节数由编译参数决定凡是需要字节数的地方 一律用sizeof获得 没有 真 假 逻辑运算的结果只有整型数 0 和 非0 很多编译器给出的非0结果是1 但这是特例if 0 printf 永远不会被执行 while 1 死循环 下列问题 要上升到阶级斗争的高度 指针指向不明数组下标越界数值运算溢出除数为0不检查函数的返回值变量不初始化就使用 比较相等时用 没用 用 比较两个浮点数是否相等返回局部变量的指针malloc不freeopen不close 它们编译不出错 运行很可能也不出错 但一旦出错 就让人焦头烂额 危险的scanf scanf简便好用不做参数类型匹配检查不限制用户输入字符串长度很多黑客攻击都是从这里开始的 0给字符串处理带来的 危险假如 0不存在 printf strcpy strcmp等都将越界访存n族函数可以解决此问题处理字符串时 时刻要警惕 0是否在其该出现的位置 C语言三大定律 表达式定律任何能产生数值结果的运算 操作都可以作为表达式 并可以放到任何需要数值结果的地方 只要数值类型能够匹配常见的可以产生数值结果的运算和操作算术 逻辑 位运算等 等有返回值的函数赋值常见的需要数值的地方有 赋值条件判断函数调用 C语言三大定律 类型定律任何类型都可以在任何需要类型的地方使用 用任何类型定义的变量都要占用内存已知特例函数返回值不能定义为数组类型函数参数定义为数组类型 此时该参数不占用内存 而是共享函数调用者传入的数组空间常用类型基本数据类型 指针 数组 结构 常见的需要类型的地方定义变量定义指针 数组和结构函数参数和返回值sizeof C语言三大定律 参数传递定律函数调用时的参数传递永远都是传值调用 把实参的值拷贝给形参实参 调用者提供的参数形参 函数定义的参数基本数据类型无容置疑struct也无容置疑指针作为参数时 把指针变量的内容 就是其指向的内存地址 做了拷贝数组名作为参数时 把它等同于指针看待了 要点 简单为美宣扬 简单为美 的科学思想 摒弃刻意的复杂原理为纲C语言复杂的表面都是简单的原理的外在表现人性为本计算机是人设计的 具有人性面向应用避免 学是一回事 使用是另一回事 无需背诵该记的 用着就记住了 用不着的 背下来也会忘没有绝对Matchisbest 为什么追求 简单为美 C语言没有权威 什么都不可信书当然不可信 任何书都是背书更可悲编译器也不可信 它只是一种实现而已不同编译器 不同平台 表现往往会大相径庭C语言诞生的主要目标之一就是让UNIX可以跨平台 我们书写的C程序也应该极力争取跨平台有些本来就是错误的用法 在某些平台上却还可以正确运行ANSIC也不可信这个标准本身并不完备 而且并不是所有编译器都对它100 支持 为什么追求 简单为美 那我们还能信什么 相信 简单 最简单的用法 是被编译器支持得最好的 简单 易于理解 交流 便于维护 非计算机专业需要了解深入的 原理 吗 只要使用C语言 就必须知道 原理 浮于表面的使用 是无法发挥C语言的优势的如果他不需要知道 原理 肯定他不用C语言 那么就不该让他学C语言 原理 涉及到计算机原理编译原理操作系统算法与数据结构软件工程 原理为纲 计算机原理冯 诺依曼机二进制 八进制 十六进制和十进制b B KB MB GB TB寄存器 内存 外存的基本原理流编译原理编译 链接过程预处理指令 外部变量函数的参数传递和局部变量定义栈 原理为纲 操作系统内存保护数组下标越界 野指针内存管理动态内存分配 堆 和栈文件管理 进程互斥 算法与数据结构栈结构体软件工程分析 设计 程序结构结构体协作 原理为纲 C语言自身的原理指针的原理数组的原理函数调用的原理内存分配的原理栈和堆了解原理 就能从根上分析出一些纷繁复杂的语法规则的合理性 此外 还需要一点点人性 人性为本 在原理基础上 C语言为了让人使用方便 有很多人性化的设计比如 charsz AString if else逻辑运算不要让学生 记住 这些 而要让他们知道这些有多么地顺乎自然 面向应用 C语言是用来实践的 能应用 比掌握一些生僻的用法更重要应用中最信奉的就是 简单为美 软件工程思想在应用中也非常重要结果正确不能说明程序好 无需背诵 记忆力经过漫长的12年中小学应试教育 已经锻炼到极致了如果教学中指明要学生机械背诵什么 那么这个教学是失败的如果考卷中有需要机械背诵才能做答的题 那么这个考卷是失败的通过作业 上机 把知识自然而然地变成学生身体的一部分锻炼学生查资料 联机帮助和手册等的能力 没有绝对 科学没有金科玉律 计算机科学更是如此在不同的环境下 相同的观点会产生不同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 复合材料PE管网铺设施工工艺标准
- 夏日荷花盛开景致作文(7篇)
- 古诗文教学-深入浅出诗词赏析
- 幼儿园讲故事活动方案及总结范文
- 桩间土方开挖施工技术方案及管理
- 2025年学历类自考房地产法-管理心理学参考题库含答案解析(5卷)
- 家庭农场生产经营与委托管理协议
- 湖南省桑植县贺龙中学高中音乐《第六单元 欧洲民间音乐》第十三节 拉丁美洲音乐 教案
- 2025年学历类自考思想道德修养与法律基础-学前教育原理参考题库含答案解析(5卷)
- 2025年学历类自考大学语文-中国税制参考题库含答案解析(5卷)
- 2025年公证处聘用制书记员招聘考试要点及面试模拟题解析
- 2025江西吉安庐陵新区招聘社区工作者(专职网格员)招聘22人考试参考试题及答案解析
- 2025-2026学年广美版(2024)小学美术二年级上册教学计划及进度表
- 2025年手电筒行业研究报告及未来行业发展趋势预测
- 设备使用与保养培训课件
- 酒店客户服务质量提升培训课件
- GB/T 9258.2-2025涂附磨具用磨料粒度组成的检测和标记第2部分:粗磨粒P12~P220
- 2025山西太原西山生态文旅投资建设有限公司及子公司招聘13人笔试参考题库附带答案详解
- 2025 年小升初吕梁市初一新生分班考试语文试卷(带答案解析)-(部编版)
- 2025秋全体教师大会上,德育副校长讲话:德为根,安为本,心为灯,家为桥-这场开学讲话,句句都是育人的方向
- 2025年政工师考试试题及参考答案
评论
0/150
提交评论