C语言介绍

作者: 积木同学 | 来源:发表于2018-08-09 07:59 被阅读24次

    1.c语言的发展历史

                --C语言的原型ALGOL 60语言(也称为A语言),最早的块结构语言。

                --1963年,剑桥大学将ALGOL 60语言发展成为CPL语言,CPL最大的缺点就是太大了,以至于不能在很多应用程序中使用。

                --1967年,剑桥大学的Martin Richards 对CPL语言进行了简化,于是产生了BCPL语言,BCPL缺乏运行时的支持,而且运行很慢。

                --1970年,美国贝尔实验室的Ken thompson将BCPL进行了修改,提炼CPL语言的精华并起名为B语言,并且他用B语言写了第一个UNIX操作系统,它的字符处理机制太烂了,而且浮点数运算被实现的并不理想,处理指针时开销太大。

                --1972年左右,美国贝尔实验室的D.M.Ritchie在B语言基础上最终设计出了一种新的语言,取名为C语言。

                --1977年,为了使UNIX操作系统推广,Dennis.M.Rithie发表了不依赖于具体机器系统的C语言编译文本“可移植的C语言编译程序”。

                --1978年,美国电放电报公司(AT&T)贝尔实验室正式发表了C语言,同时由B.W.Kernighan和D.M.Ritche合著了著名的“The C Programming Language”一书,通常简称为“K&R”,也有人称之为“K&R”标准,但是在“K&R”中并没有定义一个完整的标准C语言。

                --1983年,美国国家标准化协会(American National Standards Institute),在“K&R”基础上制定了一个C语言标准,于1983年发表,通常称之为ANSI C,又称C89。

                --1990年,国际标准化组织ISO(International Organization for Standards)接受了ANSI C为ISO C的标准(ISO9899-1990),又称C99。

    2.C语言的特点

                1》 语言,简洁,紧凑,使用方便灵活。C语言一共有32个关键字,9种控制语句,程序书写自由,压缩了一切不必要的成份。

        2》 运算符丰富。

                3》 数据类型丰富,具有现代语言的各种数据结构。

        4》 具有结构化的控制语句。

        5》 语法限制不太严格,程序设计自由度大。

        6》 C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件操作。

                7》 生成目标代码质量高,程序执行效率高。C语言一般只比汇编程序生成的目标代码效率低10%--%20。

        8》 C语言编写的程序可移植性好,基本不用太多的修改就能在各种平台上运行。

    3.C的应用现状

                操作系统内核开发领域几乎是唯一开发工具

                绝大部分操作系统是由C加上少量汇编语言开发的

                Linux、Windows、Vxworks、Unix

                在嵌入式领域占有绝对优势

                在网络服务器类相当大优势

                    Apache、Oracle

                GUI应用领域

                    大型商用程序采用C的较多

                    Offices,SPSS,AutoCAD

                大规模、高性能计算、游戏开发以及一些传统的客户端软件和构件

    4.C程序结构特点

                程序由一个或多个函数组成

                必须有并且只能有一个主函数main()

                程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行

                C程序由语句组成

                用";"作为语句终止符

                习惯用小写字母,大小写敏感

    6.linux平台下我们用的编译工具 gcc  (GUN)编译器的集合;我们用的编辑工具 VIM 。

        注: 区别的编译器和编辑器的功用。

            -E    -S    -c    (-o)

        .c --> .i --> .s --> .o --> a.out

          预处理  编译  汇编    链接

    7.常用的字节和位之间的单位系

                内存以字节为单元组成,每个字节有一个地址,一个字节一般由8个二进制位组成,每个二进制的值是0或1

                1T = 1024G

                1G = 1024M

                1M = 1024K     

                1K = 1024B     

                1B = 8b        Byte 字节  Bit 位

    8.C语言的32个关键字

        只有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.数据类型    注:(区分数据类型和数据结构的概念)

                                                      |--短整型short

                                              |整型----|--整型  int

                                  |--数值类型|        |--长整型long

                                  |                  |--扩展型长整型 long long

        |---------------基本类型--|          |       

        |                        |          |实点型--|-单精度型float

        |               |                  |-双精度型double

    C    |                        |--字符类型

    数  |

    据 --|                        |--数组

    类  |---------------构造类型--|--结构体型

    型  |                        |--枚举类型

        |                        |--共用体型

        | 

        |---------------指针类型

        |

        |---------------空类型(无类型void)

        |               

        |---------------自定义类型typedef

    10. 常量与变量

        1》运行过程中,其值不能改变的量称为常量。12,-3,4.6,-1.23,'a',“hello”。

        2》在运行过程中可以改变其值的量叫变量。

        3》和其它高级语言一样,用来对变量,符号常量,函数,数组等数据对象命名的有效字符序列称为标志符。

        注: 规定标识符只能由字母,数字和下划线3种字符组成。且第一个字母必须为字母或下划线。(有大小写之分)

        Class  class 为不同的变量名。

    注:ANSI C没有规定标识符的长度,但各个C编译系统都有自己的规定。如IBM——PC的MSC取8个字符。大于8个字符的只取前8个字符作为有效标识符。

    11.整型变量

        1》 整型数据在内存的存储方式(补码),正数和0的补码和它的原码相同,负数是原码取反加1;

        2》 整数的十进制数,八进制,二进制的相互转换和表示方法;

        10进制===>>2进制  (除二取余法)

        2    ===>>10    例10101    ==  1*2^0+0*2^1+1*2^2+0*2^3+1*2^4

      每一个十六进制对应4个bit

    12.浮点型变量

    float  f;

    double  b;

    13.字符变量与常量

    man ascii

    char ch    "ch为字符变量"

    ch = 'a'  "a为字符常量"

    14.字符串常量

      "hello world"

    13.算术运算符和算术表达式

      (查表理解它们之间的优先级别,尽可能的多记一点)

    a+b; a b 操作数  ‘+’操作符

    根据所需操作数的数量 将操作符分为:

    1.单目运算符:++ --  & ! ~  *(解引用:访问指针指向的空间)

    2.双目运算符:+ - * / %

    3.三目运算符: ?:

    14.输出(printf)输入(scanf)语句的用法和简介

    printf("hello %d\n",a);

    scanf("%d",&a);

    %  格式控制符

    a  输出/输入参数

    几个%对应几个输出/输入参数,也叫输出列表

    %d    整数int

    %h    short

    %c    字符char

    %s    字符串

    %f    浮点型float

    %lf    double

    %p    地址

    %x    十六进制

    %o    一个八进制

    %u    unsigned int

    %hu    unsigned short

    %ld    unsigned long

    %lld  long long

    %%    输出一个“%”

    ...........................

    15.位运算

          运算符          含义

            &(清0)        按位与    0&0=0,  0&1=0,  1&0=0,  1&1=1   

        |(置1)        按位或    0|0=0,  1|0=1, 0|1=1, 1|1=1

        ^            按位异或  0^0=0,  1^0=1,  0^1=1,  1^1=0   

        ~            取反

            在逻辑左右移移出去的直接丢弃,空出来的补0

            算术右移移出去的直接丢弃 空出来的补符号位

        <<            左移

        >>            右移

    16.布尔希值(bool)

      非零为真,零为假。

    相关文章

      网友评论

        本文标题:C语言介绍

        本文链接:https://www.haomeiwen.com/subject/lszfbftx.html