二、高级程序设计难点:
指针运用的知识点是比较广泛的,在学习的路上人人都会说指针是判读学习者个人C语言水平的一个标准。在这过程中我体会到记忆的重要性,不管是一般的指针变量还有就是指针数组抑和函数指针只要你想用内存图去理解记忆就有一个相对清楚的思路。
1、至于指针,就是地址的抽象。数据就放在那里,本身是没有意义的。不同的数据类型,用来指导如何看待这串内存数据。用 int* 操作,就看成放着整数。强转成 float* 之后,就看成是浮点。指针都有类型,通过指针放着的地址,可以知道数据存放的起点;通过类型,可以知道占据的存储空间大小;通过类型,也可以知道如何操作这串数据。数据还是那个数据,本身没有变化,但被赋予的意义可以有不同。
2、系统或者应用编程实质是对“库”其涉及的相关知识的理解及使用。比如Linux系统编程可以参阅glibc,其涉及了网络编程,Pipe,进程等等一系列与Linux系统相关的函数与概念。
3、而要进行gui编程则要参考与glibc没有多大关系的gtk,而每一项都会引入许多知识。
4、Windows编程也有自已一套内容,比如窗口,钩子,DirectX等等,而Windows提供了面面俱到的参考资料MSDN。
在语法上,基本函数比如输入输出,文件操作及指针使用等没有问题后,就可以依自已的兴趣选择编程方向。数据结构与算法修炼可以通过ACM加强。而ACM涉及的更多的是数学,要想和计算机沟通或创作应用则要掌握各类库的使用。
对于C语言好的定义,我个人觉得应该特指对C语言本身以及它的开发工具,所以,像算法、整体设计能力的好坏应该不完全算是C语言的一部分。而应该表现在:1、熟读C语言的各种标准,最好是能背下来,比如C89,C99什么的,然后能随口说出各种标准之间的差异就更好了。2、熟悉各种语法,包括各种怪异的语法,各种怪异的宏的使用。3、熟悉编译器,并且能掌握(或者会分析)各种语法未定义的行为(比如著名的i++ + i++ + i++),知道编译器的边界在哪里。4、熟悉汇编,能在主流编译器框架下做人肉汇编解释器,能做人肉栈回溯,并且不仅限于x86汇编。5、能清除掉所有的编译器警告,包括各种怪异用法的警告,各种平台(比如RISC上)的警告。会做C语言解释器……其总结起来,就是要熟悉汇编、要熟悉C语法、要熟悉编译器、要懂得编译原理。
三、高级程序设计的五个特点:
1、像是混合了一样他把高级语言的结构和语句与低级语言的实用性合并了一起。还能像汇编语言一样对立,地址和字节进行操作。这就是计算机最基础的三个工作单元。
2、语言的结构式代码和数据的分隔化,除了程序的信息交流彼此都是独立。结构上层次清晰方便使用还有调试以及维护。用户使用语言的时候就是等于使用函数,可以方便调用,循环,控制语句序的流向,使程序可以结构化。
3、功能齐全各种各样的数据类型,要是使用指针,是能使程序更高的效率。还有就是图形功能也十分强大,各种类型的显示屏还有驱动器都支持。计算功能,逻辑功能都是出了名的高校游戏上还有各类的人工智能都有用。
4、画图和编写硬件都比一些高级语言要好。
5、现在市面上多种系统和机型都适用具备强大存在性。
四、高级程序设计的重要性:
1、高级程序设计是计算机程序和设计程序的语言,它具备两个特点一个是高级语言的特点,另一个是汇编语言的特点。它可以设计系统的语言还能编写系统应用程序,还可以作为设计程序语言,还能写出不需要依赖机器硬件的应用程序。所以它的应用范畴很广,很多科研软件开发都是它的应用范围。
2、C语言是过程式语言的代表,C++是在游戏领域用的非常广泛的对象式语言,C#是对象式的、类java语言。现在三种语言我都在接触和长期使用,从长期发展的角度来讲,根据自己的不同阶段,逐渐了解各个语言,主要是能理解其中不同的设计理念和组建自己的工具盒,不怕工具多,在什么场合用什么工具很重要。
一个优秀的编程人员是那些始终对新技术、新知识及其背后深刻的原理保持好奇心和学习欲望的人。我们学习这门课程的知识的人应该带领时代,掌握现代知识,改变过去没有计算机时代知识,根据我们掌握的计算机知识技能和各门编辑语言,创造出迎合市场需求的科技作品,增加自己的职业竞争优势。
高级程序设计C语言学习体会(二)相关范文