C语言程序设计教学体会.ppt
《C语言程序设计教学体会.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计教学体会.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计语言程序设计教学体会教学体会一个程序员一个程序员的的“个人体会个人体会”代码风格代码风格代码风格就是程序员的书法代码风格就是程序员的书法比书法好学得多,基本不需要特别练习比书法好学得多,基本不需要特别练习但是坏习惯一旦养成,就像书法一样难以改变但是坏习惯一旦养成,就像书法一样难以改变是最易获得和实践的软件工程规则是最易获得和实践的软件工程规则对设计程序结构、培养团队精神都大有帮助对设计程序结构、培养团队精神都大有帮助不给学生看到任何一个风格糟糕的例子不给学生看到任何一个风格糟糕的例子代码风格代码风格标识符命名标识符命名宏全部大写宏全部大写Windows风格和风格和Unix风格风格
2、VariableNamevariable_name缩进缩进“”位置的两种风位置的两种风格格用用4格格tab还是用空格还是用空格空格空格增强单行清晰度增强单行清晰度每行代码长不要超过每行代码长不要超过80空行空行自然段自然段表达式尽量简单表达式尽量简单下面程序在不同编译器可能产生不同结下面程序在不同编译器可能产生不同结果,而且可读性差果,而且可读性差a=i+i+i+;printf(%d,%d,%d,i+,i+,i+);for(i=0;i!=0&i+;);很多教科书自作聪明地创造了很多复杂很多教科书自作聪明地创造了很多复杂的题目来难为学生,就算它们的用法正的题目来难为学生,就算它们的用法正确,实践
3、中也未必用得到确,实践中也未必用得到全局变量要避免使用吗?全局变量要避免使用吗?全局变量增大了模块之间的耦合度,而全局变量增大了模块之间的耦合度,而且不利于排错,罪大恶极且不利于排错,罪大恶极这罪恶不能怪全局变量,只能怪无限制这罪恶不能怪全局变量,只能怪无限制的对全局变量的改写的对全局变量的改写不要让全局变量有复杂的数据结构不要让全局变量有复杂的数据结构一旦数据结构变了,真的大祸临头了一旦数据结构变了,真的大祸临头了最好利用最好利用static特性用函数对其进行封装特性用函数对其进行封装不要把不要把goto判处死刑判处死刑问题不是出在问题不是出在goto,而是出在对标号的滥而是出在对标号的滥用
4、用结构化程序设计中一个被忽视的原则结构化程序设计中一个被忽视的原则单入口,单出口单入口,单出口只要符合此原则,什么都可以用只要符合此原则,什么都可以用goto在处理异常流程问题时,非常好用在处理异常流程问题时,非常好用退出多重循环退出多重循环统一的错误处理统一的错误处理吓死人的指针吓死人的指针“指针指针”出现,出现,“难难”字当头字当头老师吓学生,学生再吓学生的学生老师吓学生,学生再吓学生的学生从原理上了解指针,它是那么简单从原理上了解指针,它是那么简单一个普通变量,其值是一个内存地址一个普通变量,其值是一个内存地址格守下列原则,指针使用永不出错格守下列原则,指针使用永不出错永远要清楚每个指针
5、指向了哪里永远要清楚每个指针指向了哪里永远要清楚指针指向的位置是什么永远要清楚指针指向的位置是什么指针的兄弟:数组指针的兄弟:数组不要把数组和指针分开,它们是紧密相不要把数组和指针分开,它们是紧密相连的连的数组最简单数组最简单数组名是指针,数组成员是变量数组名是指针,数组成员是变量多维数组麻烦些多维数组麻烦些关键要知道它在内存中是怎么分布的关键要知道它在内存中是怎么分布的脑细胞可贵,千万别用来背脑细胞可贵,千万别用来背算符优先级算符优先级知道先算括号足以知道先算括号足以这样方便自己,也方便他人这样方便自己,也方便他人库函数用法库函数用法会查联机帮助、手册最重要会查联机帮助、手册最重要变量占用的
6、字节数变量占用的字节数不同平台,不同编译器,可能会迥然不不同平台,不同编译器,可能会迥然不同同struct占字节数由编译参数决定占字节数由编译参数决定凡是需要字节数的地方,一律用凡是需要字节数的地方,一律用sizeof获获得得没有没有“真真”“假假”逻辑运算的结果只有整型数逻辑运算的结果只有整型数“0”和和“非非0”很多编译器给出的非很多编译器给出的非0结果是结果是1,但这是特例,但这是特例if(0)printf(“永远不会被执行永远不会被执行”);while(1)/*死循环死循环*/下列问题,要上升到阶级斗争的下列问题,要上升到阶级斗争的高度高度指针指向不明指针指向不明数组下标越界数组下标越
7、界数值运算溢出数值运算溢出除数为除数为0不检查函数的返回值不检查函数的返回值变量不初始化就使用变量不初始化就使用比较相等时用比较相等时用=,没,没用用=用用=比较两个浮点数比较两个浮点数是否相等是否相等返回局部变量的指针返回局部变量的指针malloc不不freeopen不不close它们编译不出错,运行很可能也不出错,它们编译不出错,运行很可能也不出错,但一旦出错,就让人焦头烂额但一旦出错,就让人焦头烂额危险的危险的scanfscanf简便好用简便好用不做参数类型匹配检查不做参数类型匹配检查不限制用户输入字符串长度不限制用户输入字符串长度很多黑客攻击都是从这里开始的很多黑客攻击都是从这里开始的
8、0给字符串处理带来的给字符串处理带来的危险危险假如假如0不存在,不存在,printf、strcpy、strcmp等都等都将越界访存将越界访存n族函数可以解决此问题族函数可以解决此问题处理字符串时,时刻要警惕处理字符串时,时刻要警惕0是否在其是否在其该出现的位置该出现的位置C语言三大定律语言三大定律表达式定律表达式定律任何能产生数值结果的运算、操作都可以作为表达任何能产生数值结果的运算、操作都可以作为表达式,并可以放到任何需要数值结果的地方,只要数式,并可以放到任何需要数值结果的地方,只要数值类型能够匹配值类型能够匹配常见的可以产生数值结果的运算和操作常见的可以产生数值结果的运算和操作算术、逻辑
9、、位运算等算术、逻辑、位运算等?:、&、*等等有返回值的函数有返回值的函数赋值赋值常见的需要数值的地方有:常见的需要数值的地方有:赋值赋值条件判断条件判断函数调用函数调用C语言三大定律语言三大定律类型定律类型定律任何类型都可以在任何需要类型的地方使用;用任任何类型都可以在任何需要类型的地方使用;用任何类型定义的变量都要占用内存何类型定义的变量都要占用内存已知特例已知特例函数返回值函数返回值不不能定义为数组类型能定义为数组类型函数参数定义为数组类型,此时该参数不占用内存,而是函数参数定义为数组类型,此时该参数不占用内存,而是共享函数调用者传入的数组空间共享函数调用者传入的数组空间常用类型常用类型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教学 体会
限制150内