如果你有过接触软件开发,计算机科学与技术相关专业的学习与从事相关开发的活动,那么你肯定对计算机编程语言有所了解,也许你学过多门语言,但是你会发现所有的语言都有相通的地方,其实学会一门语言就基本能看懂其他语言的程序代码,语言本身没有难度高低的差别.
在我第一次学习和接触计算编程语言时,我接触到的是C语言,当时觉得晦涩难懂,它的作用就是要把人的思维(计算方面)要告诉到电脑机器,按自己的要求去计算人类想要的结果。所以由人的思维到计算机的逻辑,中间就有一个桥梁,这个桥梁就是语言。但是对于人来说要把自己的意图告诉计算机并让它准确的执行出来,这个过程有困难,这个过程称之为调试。
自我感觉调试是实行程序正确执行人们的意图最耗时间的一个环节,很好理解,编写程序其实就是码字,跟平时用的word没多大区别,但是调试就有些麻烦,消耗大脑,尤其是对新手,那些刚入门的群体,会遇到各种各样的问题,尤其是逻辑出问题了,而且错的匪夷所思。其实根我们的思考习惯有着密切的关系,如果把计算机当作一个人的话,那么我们如何去与他交流,当然我们需要去满足它本身那一套规则,包括开发工具的规则。因为它不能像人一样拥有智能的思维,你每个指令都必须清楚告诉它,而且得按照它的“思维逻辑”去编写源码。
在编写一些算法的调试的时光里,我自己也遇到了一些问题:
1.在调试程序时,会不正常退出。类似于:exited code -12145xxxxxx,然后编辑器就会出现一个对话框,提示“接收到操作系统底层信号,程序停止”。像这回情况也许是操作内存是不小心造成的,在使用指针操作内存时,需要注意:1.定义指针;2.分配空间;3.初始化(为了避免一些奇怪的错误,因为有些需要初始化,有些不用,为了保险起见,最好初始化,不要嫌麻烦);4.用完后要记得释放内存空间,free(),养成回收内存的好习惯(有些语言可自动完成,具体语言具体分析);5.free完了后记得将指针置NULL避免指针不知指向哪里,这样也会造成程序不正常退出。
2.输入问题导致不正常退出。同样也是 exited code ********,这个比较简单,我们需要注意到输入的参数类型是否与要求的参数类型相同,数组的下标是否超出数组本身的长度导致异常退出,一般相应修改过来就好了,这个还是比较简单。
3.在C语言中,没有返回数组这种操作,在其他语言(如java)中可以返回,但是在C语言中不允许返回数组,具体为什么我也没搞懂,这就是个规则吧,如果想返回数组,则用指针返回数组首地址,再通过指针地址偏移get到自己想要的数据,如*(p+1)==A[0+1]是等价的。
4.关于新手编写C语言工具的选择,欲利其功,必先利其器,选择一款调试方便的工具对新手来说是比较重要的,这样避免丧失学习信心。具体的C调试工具到网上找找,一般用的比较多的是微软的VC++6.0,我用的是Windows 系统版本的32位的Qt5.4 Creator(一个集成度比较高的C/C++编辑器),选择适合自己的一款。另外调试的过程中可以在觉得有问题的地方利用printf()设置一些打印结果输出,看看参数,处理过程,结果等是否正确。
善于利用网络学习资源,互联网拉近了各位的距离,虽然在繁杂的网络世界有着各种不同的信息,但是强大的互联网一定能让我们自己找到我们想获取的有效信息。同时在学习的过程中需要我们坚持,让时间去验证我们的努力,没有随随便便就能成功的,需要我们脚踏实地去做,兴趣也是比较重要的因素,它会让你有学习和实践的欲望。