C的数据类型
数据类型
常量
在程序运行过程中,其值不能被改变的量称为常量,常量区分类型 120-3等为整型常量,4.5-1.23等为实型常量,’a’、’g’等为字符型常量。一般可以通过常量的表达形式判断常量的类型。

#define RATE 8.54
void main( void )
  int result;
  result = 1000.0 * RATE;
  printf( “result is %f \n”, result );
通常情况下,常量名的定义采用大写
使用符号常量的好处:1、含义清楚。2、在需要改变一个常量时能做到“一改全改”
变量
其值可以改变的量称为变量
C语言中标识符(变量名)命名规则
1、只能由英文字母、数字字符、下划线构成,且第一个字符必须是英文字母(大写或小写)或下划线。
2、在C语言中,变量名长度以简洁为目标,尽量做到“见名知义”力求程序凝练,Turbo C允许32个字符。
3、变量名一般以小写英文字母形式命名。
变量必须“先定义、后使用”
1、没定义的,不作为变量名,保证程序中变量名使用的正确 2、为变量制定类型,编译时好分配存储单元 3、指定类型 3、容易检验运算的合法性
整型数据
整型常量
整型常量即整型常数 十进制整数  八进制整数(以0开头的数)十六进制整数(以0x开头的数)
整型变量的分类
整型变量总体上可以分为有符号数和无符号数两类
整型数据
整型数据在内存中的存放形式
整型数据在内存中以二进制形式存放,确切的说是以
补码的形式表示的。
一个正数的补码和原码形式相同,而负数的补码是将该数的绝对值的二进制形式,按位取反
再加1
整型数据
整型变量的定义
用定义类型字来定义变量的类型 一般放在函数开头的声明部分
void main( void )

  int a, b, c, d;                /* 定义整型变量 */
  unsigned u;
  a = 12; b = -24; u = 10;
  c = a + u; d = b + u;
  printf( “a + u = %d \t b + u = %d \n”, c, d );
整型数据的溢出
如果一个整形变量存放的值,超出它所允许的范围,将会产生溢出,例如一个int型变量,如
果其值为32767,再加1就会产生溢出,变成-32768。但运行时并不报错。
整型数据
复合赋值运算符的含义✉ 整型常量的类型
注意:
1、一个整常量,如果其值在-32768~+32767范围内,认为它是int型,它可以赋给int型和long int型变量。
2、一个整常量,如果其值超过了上述范围,而在-2147483648~+2147483647范围内,则认为它是long int 型。
3、一个整常数后面加一个字母uU,认为是unsigned int 型。
4、一个整常数后面加一个字母lL,认为是long int型常数。
实型数据
实型常量的表示方法
1、十进制小数形式:.123  23.1
2 指数形式:123e3  1.234e34e前必须有数字,e后指数必须为整数)
在数的后面加字母fF,就为单精度数,否则处理成双精度数。
实型变量
单精度(float):    4B        10-38~1038            6~7
双精度(double):8B        10-308~10308        15~16
长双精度:        16B      10-4931~104932       18~19
实型数据在内存中的存放形式
一个实型数据一般在内存中占四个字节,系统把一个实型数分成小数部分和指数部分,分别存放采用规范化的指数方式示,如:
实型数据
实型变量的定义示例
  float  x,y;      /*指定xy为单精度实数*/
  double  z;      /*指定z为双精度实数*/
字符型数据
字符常量
C语言的字符常量是用单引号括起来的一个字符 ,如’a’,’X’,’A’C语言还有一些特殊字符的常量,如下表
字符型数据
字符型数据
main()
  char c1,c2;
  c1=97;
  c2=98;
  printf(“%c %c\n”,c1,c2);
  printf(“%d %d\n”,c1,c2);
字符型数据
例子  大小写字母的转换
main( )
{char c1,c2;
c1=‘a’;
c2=‘b’;
c1=c1-32;
c2=c2-32;
printf(“%c %c”,c1,c2);
}
字符型数据
字符串常量
字符常量是用一对双引号括起来的字符序列。
如:"How do you do ."  "CHINA"  "a"  "$135.45"
可以用printf语句输出一个字符串常量:
printf("How do you do .\n");
注意:字符常量与字符串常量的区别:
              "a"                  ‘a’
           
C规定:在每一个字符串的结尾加一个字符串结束标志: "\0",以此判断字符串是否结束。
变量赋初值
变量赋值的方式分为两种:
1、先说明,再赋值。如:
    int  x,y;
    x=10;y=20;
2、说明变量的同时赋值。这称为变量的初始化。如:
    float x=123.45;(等价于  float x;x=123.45;
    int a,b,c=10;
    int a=13,b=34,c=2;
    float f=3.56;
各类数值型数据间的混合运算
数据类型转换
整型、实型、字符型数据间可以混合运算。
例如:10+’a’+1.5×2 -’b’=12.0000
在运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则如下所示:
                  double          float
             
                        long
                             
                      unsigned
                      int              char,short
算术运算符和算术表达式
C运算符简介
      C语言的运算符有以下几类∶
      1.算术运算符    (+ - * / % ++ --)
2.关系运算符    (< > == >= <= !=)
3.逻辑运算符    (! && ||)
4.位运算符        (<< >> ~ | ^ &)
5.赋值运算符    (=及其扩展赋值运算符)
6.条件运算符    (? :)
7.逗号运算符    (,)
8.指针运算符    (*&)
9.求字节数运算符    (sizeof)
10.强制类型转换运算符    (类型)
11.分量运算符    (.->)
12.下标运算符    ([ ])
13.其它        (函数调用运算符( ))
算术运算符和算术表达式
基本算术运算符号
+  (加法运算符,或正值运算符。)
        -  (减法运算符,或负值运算符。)
        *  (乘法运算符)
        /  (除法运算符)
        % (模运算符,要求%两侧均为整型数)
算术表达式和运算符的优先级与结合性
用算术运算符和括号将操作数连接起来的符合C语言语法规则的式子,称为C算术表达式
运算对象包括常量、变量、函数等等。例如∶
      a * b / c - 1.5 + ‘a’
在表达式求值时,先按照运算符的优先级别高低次序执行。
算术运算符的结合方向为“自左至右
优先级别和结合性参考附录
算术运算符和算术表达式
强制类型转换运算符
将一个表达式转换成所需的类型
一般形式为∶
    (类型名) (表达式)
    注意:表达式应该用括号括起来。例如∶
    (double)a          /* a转换成double类型 */
    (int)(x+y)          /* x+y的值转换成整型 */
    (float)(5%3)        /* 5%3的值转换成float */

总结:类型转换有两种:1、自动类型转换
                    2、强制类型转换
算术运算符和算术表达式
自增、自减运算符
作用是使变量的值增1或减1。例如∶
    ++i, --i        /* 在使用i之前先使i的值加()1 */
    i++, i--        /* 在使用i之后再使i的值加()1 */

算术运算符和算术表达式
有关表达式使用中的问题说明
1表达式中包含自增或自减运算时,很容易出错。
例如:(i++)+(i++)+(i++)
不同系统处理的不同,如i3,可为3+4+5,也可为3+3+3,为避免歧义性,如果想得到12,可以写成如下:
i=3: a=i++;  b=i++;  c=i++; 
d = a+b+c;
2C语言中有的运算符为一个字符,有的运算符由两个字符组成,在表达式中尽可能多的“自左而右”组成一个运算符 。如:i+++j应解释为(i++)+j,而不是i+(++j)
3在调用函数时,实参数的求值顺序,标准C中并没有统一规定。如:设i的初值为3,下面的函数调用
    printf( “%d %d\n”, i, i++ )
    在有的系统中,从左到右求值,输出“33”。在多数系统中,是从右到左求值,输出“43”。最好改成j=i++; printf(“%d,%d”,I,j);
不要写别人看不懂,也不知道系统会怎样执行的程序
赋值运算符和赋值表达式
赋值运算符
赋值符号“=”就是赋值运算符 ,它的作用就是把一个数据赋给一个变量。
类型转换
如果等号两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换。
        1将实型数据赋给整型变量时,舍去实数的小数部分。
          int i=3.56,则i=3
        2将整型数据赋给单、双精度变量时,数值不变;但以浮点数形式存储到变量中。
          float f=23,则f=23.00000

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。