【学习总结】C-翁恺老师-入门-总
2019-1-2 翁恺老师C入门视频-启程
代码详见GitHub:
目录
第0周:程序设计与C语言
第1周:计算
第2周:判断
第3周:循环
第4周:循环控制
第5周:数据类型
第6周:函数
第7周:数组
第8周:指针与字符串
第0周:程序设计与C语言
第1周:计算
第2周:判断
第3周:循环
第4周:循环控制
第5周:数据类型
第6周:函数
第7周:数组
第8周:指针与字符串
第4周<循环控制>
------------------------------------------
第1周 - <计算>
1-变量定义:找零程序
2-常量定义:const
3-相加:同时多个scanf
4-身高换算:引入浮点类型
5-时间差:表达式引入
6-平均数:运算符优先级
7-交换两个变量:顺便学习调试功能
- 注:Dev软件里的调试功能看起来是图形化的gdb
设置断点运行,停下来的地方是当前命令尚未执行的状态,按下一步才执行并跳转下一步
鼠标光标扫过的变量,可以从左侧栏看到当前状态下此变量的值。
- 注:这里遇到一些设置问题,详见【问题解决方案】Dev C++ 无法调试的问题与解决
老师说:很多事情都有一般的做法,即套路。阅读,看别人怎么做,你跟着做。
8-plusplus:复合赋值+=、-=和递增递减++、--(递增递减必须要有变量)
讲了一些来源
- a++: a+1以前的值
++a: a+1以后的值
a: 都让a的值+1
9-scanf:如何正确地输入以及一系列可能的问题
scanf() - 括号里的内容是它期望你输入的东西,少了或者不一致就报错
两个变量中间写了逗号,输入时也要有逗号。前面有price,输入时也需要输入price。
后面有空格,或者\n,输入时也得随便给一个数字之类来填补这个空要不然就出错。
(空格不行,回车也不行 - 这两者代表虚无)
10:代码里的零0长得像希腊字母西塔θ的渊源
追溯到电报时代,与英文字母O区分,默认在数字0中间加一撇
------------------------------------------
第二周 - <判断>
1-时间差2.0:判断是否借位引入判断机制-if语句
- 注意:从调试可以看出if语句判断为真或假时,程序执行的路子
2-关系运算符-作比较:运算结果是0或1
优先级:较低。比算术低,比赋值高
判断是否相等的==和!=比其他比较运算符低 5>3 == 6>4 :
连续的关系运算是从左到右的 6>5>4: 0
3-找零2.0版,年龄输入输出:判断、注释、流程图
注释:// c99独有 或 /* */
流程图的画法简单介绍
4-找零3.0版:引入if-else语句
流程图一个走这边,一个走那边
5-两数最大值:关于代码孰优孰劣的思考-要足够傻,让尽可能多的人读懂你的代码
6-计算薪水,判断成绩:if-else语句后面可以没有大括号,只做紧跟其后的第一句语句。
7-三数最大值:if-else嵌套时,不加大括号则if会找下面最近的else匹配,与缩进格式无关。
安全的方式是:if-else语句始终加上清晰的大括号,即使只有一条语句
(此处还有另一个例子不过很简单,为了验证if-else的自动匹配,故不再赘述)
8-分段函数:级联if-else if
单一出口问题:好处是这一段只管计算,最终得到的值,下一步再print,但也许还有别的用处呢。单一出口比较好。。
9-if语句的常见错误:
忘了大括号;if后面分号;错误使用==和=;else
==和=:error和warning的区别,能不能产生可执行程序的区别。学会尊重warning!
if()括号里只要是非0就会执行
代码风格:if-else加大括号,括号里缩进,前半个大括号放在上一行。
10-成绩分级:switch-case
- 1-控制表达式只能是整数型的结果
- 2-常量可以是常数或常数表达式,即结果是知道的那种。c99 only
- 3-break分隔了switch内部,case只是开始执行的一个位置,一个路牌,直到遇到break停下来。
11-测试题:输入一个三位数,然后逆序输出
通过取余和整除弄到三个数字,然后乘以100和10并相加得到。
脑子里第一反应除了数组别的什么也没,怎么肥事。。。