大宇私人领地伊甸园丨宁愿做了后悔,也不要错过后悔[www.mrdayu.com]
注册

24小时联系邮箱:[email protected]

所有文章
大宇私人伊甸园: 首页 > 所有文章 > 编程人生 > C/C++语言 > 大宇:C编程 > [001.01]C语言简介

[001.01]C语言简介

发布时间:2018/07/04 大宇:C编程 标签C编程阅读:31

什么是语言,什么是C语言?

  • 一提到语言这个词,人们自然想到的是像英语、汉语等这样的自然语言,因为它是人和人相互交流信息不可缺少的工具。
  • 大家听到我们之间交流的就是汉语,英语。比如一些单词是英语,主要还是用汉语在交流。
  • 而今天,计算机遍布了我们生活的每一个角落,除了人和人之间的相互交流之外,我们必须和计算机交流。
  • 用什么样的方式和计算机做最直接的交流呢?人们自然想到的是最古老也最方便的方式——语言

语言与C语言的区别联系

  • 语言是用来交流沟通的。
  • 有一方说,有另一方听,必须有两方参与。这是语言最重要的功能。
  • 语言就是用来表达意思传递信息的。
  • 说的一方传递信息,听的一方接受信息;
  • 说的一方下达指令,听的一方遵从命令做事情。语言是人与人交流,C语言是人与计算机.人可以不听另外一个人,计算机就是无条件服从。

语言有独特的语法规则与语言定义。

交流双方都了解明白并遵守这些规则与定义。

一个只会说汉语的中国人,和一个只会说英语的美国人,只通过嘴巴发出声音互相交流,结果一定是对牛弹琴,信息完全传递不出去。

为什么?因为互相不知道对方的语法规则与语言定义,当然听不懂了。

C语言就成了你和计算机之间的翻译员的角色。

计算机结构组成

计算机系统的组成:

程序和指令

指令是对计算机进行程序控制的最小单位。

所有的指令的集合称为计算机的指令系统。

程序是为完成一项特定任务而用某种语言编写的一组指令序列

机器语言与指令

计算机是一个忠实的仆人,时刻等候着主人的命令。

如何才能使计算机听话呢?当然是用计算机听得懂的语言去命令它了。

计算机的大脑或者说心脏就是CPU,它控制着整个计算机的运作。

每种CPU,都有自己的指令系统。这个指令系统,就是该CPU的机器语言。

机器语言是一组由0和1系列组成的指令码,这些指令码,是CPU制作厂商规定出来的,然后发布出来,请程序员遵守。

比如下面是某CPU指令系统中的两条指令:

1000000  加        1001000  减

要让计算机干活,就得用这样的语言去命令它。

这样的命令,不是一条两条,而是上百条。

而且不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。

编译器的概念

机器语言编程是不是很令人烦恼呢,终于出现了汇编语言,就是一些标识符取代0与1。

一门人类可以比较轻松认识的编程语言。

只是这门语言计算机并不认识,所以人类还不能用这门语言命令计算机做事情。

如同上文提到过的中国人和美国人交流一样,如何才能让中国人说的话美国人明白呢?

聪明的同学一定想到了:

翻译!是,一个既懂汉语又懂英语的人,不就可以将中文翻译给美国人听么?

所以,有一类专门的程序,既认识机器语言,又认识汇编语言,也就是编译器,将标识符换成0与1,知道怎么把汇编语言翻译成机器语言。

于是,人类和机器间的交流,终于又畅通了,而且人类可以比较轻松的编写程序了。

也就是编译器,将标识符换成0与1.

C语言的出现

汇编语言和机器语言都是面向机器的,机器不同,语言也不同。

既然有办法让汇编语言翻译成机器语言,难道就不能把其他更人性化的语言翻译成机器语言?

1954年,Fortran语言出现了,其后相继出现了其他的类似语言。

这批语言,使程序员摆脱了计算机硬件的限制,把主要精力放在了程序设计上,不在关注低层的计算机硬件。

这类语言,称为高级语言。

同样的,高级语言要被计算机执行,也需要一个翻译程序将其翻译成机器语言,这就是编译程序,简称编译器。

这类高级语言解决问题的方法是分析出解决问题所需要的步骤,把程序看作是数据被加工的过程。

基于这类方法的程序设计语言成为面向过程的语言。

C语言就是这种面向过程的程序设计语言。

C语言特点

优点:

  • 代码量小
  • 执行速度快
  • 功能强大
  • 编程自由

缺点:

  • 编写代码实现周期长
  • 可移植性较差
  • 过于自由,经验不足易出错
  • 对平台库依赖较多

C语言的精髓

C语言优点简洁、紧凑,使用方便、灵活,功能强大,执行效率高

C语言仅有32个关键字,9种控制语句,却能完成无数的功能。

某些方面C语言可能确实不如其他语言优秀,

比如字符串处理方面,就不如Perl语言;

比如数值计算方面,就不如Fortran语言;

比如人工智能方面,就不如Lisp语言。

可是这些语言在其他方面却远远不及C语言。

而且C语言有其他诸如表达力强,移植性好的特点。

32个关键字:(由系统定义,不能重作其它定义)

auto          break       case        char         const
continue      default     do          double       else
enum          extern      float       for          goto
if            int         long        register     return
short         signed      sizeof      static       struct
switch        typedef     unsigned    union        void
volatile      while

9种控制语句

if( )~else~
for( )~
while( )~
do~while( )
continue
break
switch
goto
return

34种运算符:

算术运算符:+  -  *  /  %  ++  --
关系运算符:<  <=   ==   >   >=   !=
逻辑运算符:!  &&  ||
位运算符  :<<   >>   ~  |  ^  &
赋值运算符:= 及其扩展
条件运算符:?:
逗号运算符:,
指针运算符:*  &
求字节数   :sizeof
强制类型转换:(类型)
分量运算符:.  ->
下标运算符:[]
其它     :( )  -

学习C语言的方法与秘诀

  1. 多动手少求人
  2. 多学习优秀代码
  3. 多以人类的思考方法来类比计算机
The bottom line, for me, is simple.

Let’s hope it doesn’t take 500 years for a discipline of testing to becomes the standard for software developers.

From:dayu

您好!请登录

合作网站快捷登录:
点击取消回复

已有1评论

    大宇博客

    点击这里给我发消息点击这里给我发消息