- 1 -
2021年03月28日。
周日。
这是奶爸进击之旅——CS自修室的第六期更新。
- 2 -
上期我们一起将程序<hello,world>进行了一次简单的升级——允许用户输入,并调用用户输入的数据。
我们还学习了应当保持变量命名描述性的好习惯,接下来我们将进一步学习。
不知道你们有没有注意到,上期的程序显示结果中,不仅有我们所需要的输出,而且还有代字号、斜杆和美元符号,这并不是我们需要输出,可它仍然出现在此,这是为什么呢?
它其实和终端窗口有关,表示正在使用这一命令行环境,为了不混淆输出,必须将这些符号移到下一行。
而解决办法则是在原代码中添加一个命令符号,使其实现换行的操作:
这样一来,虽然输出结果仍是一样的,但看起来却清晰很多,也并不会再混淆我们需要的输出了。
而在%s占位符后面的\n则是编程语言里的换行符,虽然我并不知道是不是所有编程语言都使用反斜杠+小写字母n来表示换行,但至少我学过的C、Java、Python、Go这些编程语言都是以此作为换行符的。
不过这也很好记,其实学习编程语言的话,看英文原版书籍,少了翻译的过程,倒是可以让我们更好的记忆这些术语。
比如string就是string,何必要去记它是字符串?
而\n符号的换行其实就是next line的意思,取了next的首字母而已。
等之后学习到制表符\t的时候,肯定也会搞不懂为什么\t是制表符,其实它也只是取用了tab键的首字母t而已。
是不是一下子清晰明了了?
好了,在以上代码中,还有许多语法还没有理清楚,比如int、main、void等等,这些存在于任何一个C语言程序的代码中,我们先简单的梳理一下这些代码行。
int main(void)
{
}
它作为开始编写C语言程序的方式,具体int表示什么、main表示什么、又为什么括号里需要使用void,我们将在之后再细细总结。
现在你只要知道,它是启动程序的开始,编写C语言程序的方式,将其记住就好了。
- 3 -
另外,你有可能会注意到,在我们编写的程序中的开头,有着如下代码行:
#include <stdio.h> / #include <cs50.h>
它们其实是头文件(head files),指的是该语言编写的文件,名称后缀不是.c而是.h的文件。
其中,stdio.h 为标准输出输入的头文件,是一个非常流行的文件,允许我们从用户那里获得输入和输出。
而cs50.h则是cs50编写的头文件,如其中的函数get_string可以让我们更方便的从用户那里获得输入。
因此,这些头文件可以让我们在C语言程序中访问更多的功能。
相信,在初学的过程中,会出现这样那样的问题,比如忘记加入头文件,忘记写分号,亦或者函数名写错了等等。
但是,不用担心,CS50提供了许多工具可以帮助解决这些问题。
第一个即是CS50编写的程序——help50,它可以帮你找出这些你无法解决的问题,比如,当你漏写了引入头文件,将会出现以下这么一堆疯狂的错误警告。
你一定会在想,天呐,这比我写的代码还要长,而且当你在初学阶段,想要去理解这些编译问题的错误警告并不是那么容易。
而help50就可以更人性化地提供建议以帮助我们解决这些问题。
只需要在编译命令行make hello前面加入help50,就会在底下终端栏中出现解决问题的建议,如上述代码的问题,会出现:你是否忘记引入stdio头文件了?
相比于编程语言自带的难以理解的警告,这样的简单的反问确实更加的实用和人性化,具体操作各位去实际操作一番便知,这里就不多加演示了。
当你遇到无法解决的奔溃时,都可以使用help50来帮助你渡过难关。
还有,C语言并没有强制要求我们一定要做到分行,<hello,world>程序其实也可以写成如下模样:
可是这样一来,简单的代码还好,如果是很大的程序,如此编写代码很容易出现问题,而且也特别影响代码的可读性,非常难以阅读。
代码可读性的问题,help50无法帮我们解决,然而CS50又编写了一个style50的程序,告诉我们如何去改善我们的编写风格。
比如前文代码漏写了注释,它就会提示我们应当在代码中添加注释。
在C语言中添加注释的方法是:// 注释
不过,像这样一个如此简单的程序,也根本没必要提供什么注释,即便提供了注释,也会与写的代码相同,没有什么实际的意义。
但是,在以后的代码编写中,代码行将会越来越长,代码的功能也会越来越复杂,编写代码时,提供一个清晰明确的注释,将会是一个优秀程序员非常值得培养的好习惯。
接着,继续介绍最后一个可以帮助我们编写更复杂的程序的工具——check50。
help50帮助我们编译代码,style50帮助我们改善代码风格,而check50则会根据一些自动化测试来检查代码的正确性。
当输入check50命令后,再输入Github的账号密码,程序就会自动检查你的代码是否正确。
在学习初期,多利用这些工具,将会对你大有助益,毕竟你不用自己绞尽脑汁去找出到底问题出在哪里或者怎样编写可读性更高的代码,这几个非常棒的工具会节省你很多时间,也会让你培养更加良好的代码编写习惯。
好了,以上,就是本期CS自修室总结,希望对你有所帮助,我们下期再会。
01010100 01101000 01100001 01101110 01101011 01111001 01101111 01110101 00100001
——我就是可可奶爸,一个平平无奇的全职奶爸。
我只是一个平平无奇的全职奶爸,不敢指导你什么,只想和你一起共同成长。
关注公号:Irene_Daddy 【进击的可可奶爸】
本号的更新内容:
周一,马拉松幻视:以马拉松为目标,每周跑步总结。
周三,英语屋:总结学习时收获的英语口语表达,以及一些英文的学习方法。
周五:向往的N2:以考取日语N2为目标,每周学习总结。
周日:CS自修室:自学CS的每周总结。
还有不定时的更新奶爸的日常:读书、观影的一些碎碎念,偶尔的秀恩爱撒狗粮,不时的亲子活动等……
网友评论