什么是C语言程序设计.

Python016

什么是C语言程序设计.,第1张

什么是C语言?C语言的简介。

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。

它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。

语言特点:C是中级语言/C是结构式语言/C语言功能齐全/C语言适用范围大/简洁紧凑、灵活方便/运算符丰富/数据类型丰富/C是结构式语言/语法限制不太严格,程序设计自由度大/适用范围大,可移植性好。

纯C语言用在编写OS、单片机上。 C++在linux和unix环境下的编程用得很多。 如果要学习WINDOWS下的程序开发,涉及方面很多。不知道你学习《操作系统》《面向对象》《数据库》等课程没有。WINDOWS下程序可以用多种语言开发,比如VB MFC DELPHI JAVA等

虽说用好c语言很难,但是对于c语言的入门是很容易的,用一句话来形容c语言,我觉得是易于上手,难于精通,C语言在语法上的使用很简单,因为它不是很高级,也不是很庞大,在第二版(K&R)中,它的参考手册仅仅用了49页就描述了整个C语言,没有迭代器,没有装箱....C语言的这种“低级”让我们在学习时会把重点放在自己控制上,所以什么都会选择自己动手,而在用java或python时,我的第一感觉,往往是,“嗯,我有哪些工具可以使用?”太多的工具选择,有时候是件坏事,因为没了许多锻炼的机会,而且很难抓住重点,有的时候什么都没有反而是件好事。<!--more--

2,原理

操作系统是一个程序员应该学好的一门课,但是我们在学习的那些操作系统概念很难深入理解,或者比较抽象,比如饿死哲学家之类的,仅仅知道概念,是不能解决实际问题的,比如,你可能学过一些进程的概念,或者内存分段之类的,那我问你,windows进程问什么没有僵死?在windows中如何修改一个进程中的数据?Linux的fork和Windows的createProcess有什么不同?linux有线程吗?你写一个我看!你的理论不管用了,因为你没有实践过.所以,我觉得学习操作系统最好的方式就是用c语言进行系统调用,这种方式在unix和linux下能获得更好的学习方式,因为win32-sdk不适合学习,更适合开发,在unix下,你能用你的操作系统知识与fork(),exe(),wait()等系统调用很好的结合.

而且不仅仅是操作系统你,在学习c语言的时候,你不得不接触一些系统结构的知识,比如字节对齐,比如c语言的地址空间,你就会知道堆栈这种东西,如果不是递归,是可以没有的.你就会知道虚拟地址到实际地址的转换.这些在java和c#中变得透明,但是透明是为了方便开发,透明对一个学习者是有害的,想象今后的云计算,将会是怎样的开发?它将培养更多的码农。

3,数据结构与算法

用C语言来学习数据结构和算法在合适不过了,用指针去写吧,用Java和c#下的学习更像是会用。你可能会说C++更好,但是你的类(变量+函数)本质跟c语言中的结构体+函数,没有区别,除非你用模板,多态,重载,我才承认你在用c++,但是你的重点篇了,我们不是在讨论学习数据结构与算法吗?你现在是在学习语言特性了。

4,更好的过渡

本文所写的是为什么学习C语言,作为一个学生,我觉得说什么C语言开发更高效,就是个笑话,因为,谈到开发,又开始谈金钱,时间,一大堆的东西,你会问,为什么不是java或python?开发是开发的事,你学的扎实还不会开发?我只是说c语言的路线更适合学习,你又会问钱都挣不上学什么?我记得有一次一个来做java培训的人说,“我们培训java,你们把自己做成一个商品,推销出去。”。我觉得很可笑,我们要做的不是商品,最起码是一支股票。所以害怕学的东西找不到工作的人,用一切时间来犹豫徘徊。