C语言基本特性

C的关键字

  • 数据类型关键字:char、short、int、long、float、double、unsigned、signed、struct、union、enum、void
  • 控制语句关键字:if、else、switch、case、default、for、do、while、break、continue、goto、return
  • 存储类关键字:auto、extern、register、static、const
  • 其他关键字:sizeof、typedef、volatile

数据类型

  • 基本类型:int、short、long、char、float、double
  • 构造类型:数组、结构体(struct)、共用体(union)、枚举(enum)
  • 指针类型:char *、int *、int **等

常量与变量

  • 常量:在程序运行过程中,其值不能被改变的量。

    整型常量:0、-485、147

    实型常量:3.14、0.256、-5.369

    字符型常量:'q'、'd'、'2'

    字符串常量:"abc"、"12345"、"a"

  • 变量:在程序运行过程中,其值可以改变

    命名规则:变量名只能由字母、数字、下划线组成;第一个字符必须为字母或下划线。

    特点:变量在编译时为其分配相应的内存地址,可以通过名字和地址访问相应空间。

  • 整型数据

    整型常量:

      十进制:以数字1-9开头,如:781,2563

      八进制:以数字0开头,如:0123

      十六进制:以0X开头,如:0x2d

    32位处理器下整型变量所占字节数:

      有/无符号短整型(un/signed)short (int):2字节

      有/无符号基本整型(un/signed)int:4字节

      有/无符号长整型(un/signed)long (int):4字节

  • 实型数据

    实型常量:实数或浮点数,不以f结尾的常量是double类型的,以f结尾的常量(如:3.14f)是float类型的。

    实型变量:有单精度(float)和双精度(double)

      float型:占4字节,7位有效数字

      double型:占8字节,15~16位有效数字

  • 字符数据

    字符常量:用单引号括起来,如:'a'、'b'。

    转义字符:以反斜杠“\”开头,后跟一个或几个字符,如:'\n','\t'(占一个字节)。

    字符变量:用char定义,每个字符变量被分配一个字节的内存空间,字符值以ASCII码的形式存放在变量的内存单元中。如:a = 'x';a变量中存放的是字符'x'的ASCII码值120。

  • 字符串常量:由双引号引起来的字符序列,如:"china"。

    字符常量和字符串常量的不同:每个字符串的结尾,编译器会自动的添加一个结束标志位'\0'。

  • typedef 类型重定义:给已有的类型重新起个名字。

格式化输出字符

  %d:十进制有符号整数    %u:十进制无符号整数

  %x:以十六进制表示的整数  %0:以8进制表示的整数

  %f:float型浮点数       %lf:double型浮点数

  %e:指数形式的浮点数    %p:指针的值

  %s:字符串         %c:单个字符

  特殊应用:

    %3d:右对齐3位。

    %03d:右对齐3位,不够补0。

    %-3d:左对齐3位。

    %5.2f:右对齐5位数长(小数点也算一位),小数点后保留两位小数。

数据的混合运算

  • 自动转换:遵循一定的规则,由编译系统自动完成。

    自动转换的原则:占用内存字节数少的类型向占用内存字节数多的类型转换。

    转换方向:

         

  

  • 强制类型转换:把表达式的运算结果强制转换成所需的数据类型,类型说明符必须加括号。

    格式:(类型说明符)(表达式)

    例如:(float)a;  //把a的值转化为实型

       (int)(x+y);  //把x+y的结果值转换为整型

  无论是自动转换还是强制类型转换,都只是对变量的数据长度进行的临时性转换,不改变数据定义的类型。

运算符

  • 自增自减运算符:使变量的值增1或减1。

    ++i,--i:先加/减,后使用。

    如:i = 3;

      j = ++i;      //i的值先加1变为4,再赋给j,此时i、j的值均变为4

    i++,i--:先使用,后加/减。

    如:i = 3;

      j = i++;      //先将i的值赋给j,j的值为3,然后i再加1变为4

  • 移位运算

    左移<<:将一个数的二进制位左移,高位丢弃,低位补0。

    算数右移>>:有符号数,如果为正数,则左边移入0,右边丢弃;如果为负数,左边移入1,右边丢弃。

    逻辑右移>>:无论是正数还是负数,左边均移入0,右边丢弃。

  • 优先级及结合性表格如下

              

posted @ 2017-11-16 12:27  lemongirl  阅读(1998)  评论(0编辑  收藏  举报