业精于勤,荒于嬉;行成于思,毁于随。
分类: C/C++
2015-03-31 23:27:58
本来我是想起名为语言的编程特性,但考虑到高级语言所拥有的特性比较多,封装的层次比较高,无法达到说明编程的特性。而C语言我认为是最合适不过了,在这里,我试着站在C语言的设计者角度来描述,最终让你认识C语言编程的基础概念。
在《编程语言开始篇》我有提到过,编写程序就是赋予计算机思维的过程。而这种计算机思维的体现就是算法,所以我们编写程序其实就是把算法用程序语言来体现算法的过程。因而,我们要明确把算法用程序语言来实现需要C语言的什么特性来支持,或者假设我们是C语言的设计者,我们会赋予C语言什么特性才能通过C语言来实现算法的描述。
(一)首先,来看看算法的实现需要什么特性来支持。在数学应用题上,有时候我们往往需要假设几个变量来辅助我们解答问题,这些变量既可以存放中间的运算结果,也可以存放最终的答案。同样的,编程也是需要中间变量的辅助,来完成算法的描述。在现实中,变量就是一个容器,用来存放物体的。而物体的大小各异,为了节省空间,我们需要分配合适的空间来存放物体,分配合适的空间对应编程里面的便是变量类型,变量类型确定了存储的大小和类型。对应存储空间里面存放的东西不会改变的则是常量,反之则是变量,故名思义,存放的东西是可变的。往变量里面存储,则是一个赋值过程。而整个算法的描述,则是通过顺序、分支和条件这三个来对算法进行描述,实际上所有的问题都可以拆分为这三个算法过程。当然在算法开始时往往会带入输入参数,来初始化算法,而输出则是对算法结果的一种显示。
(二)程序语言的设计者除了要考虑实现算法之外,还得为编程人员提供方便。
1)数组:相同类型变量的多次定义。当需要多个同类型的变量时,通过数组机制,避免了每个变量进行一次定义的冗杂过程。
2)循环:多次执行同类型的运算。当需要执行同类型的运算时,通过循环机制,能够快速实现这种运算。
3)函数:把任务细化,使程序更简洁。
4)类型重命名:对不太习惯的名称重新赋予一个比较可接受的名称。
5)...
(三)除了实现算法和提供方便给编程人员之外,还得考虑程序的运行速度。
1)宏:在预处理是处理,执行时并不占用时间
2)指针:避免的一些无用的复制,提供程序的运行效率。
3)...
本文乃黎社林原创文章,请勿转载。如须转载请详细标明转载出处。