C语言:变量的定义、存储、打印

一、C语言变量

   (1)、定义格式:<存储类型> <变量类型> 变量名;

      存储类型(6个):
        auto  register  extern  static  volatile  const

      一般可以先不用管存储类型,直接: <变量类型> 变量名;
       char a;
       int tt;

       注:(1)定义变量时,变量名必须只能以数字,字母下划线组成,且不能以数字开头。
        例如:1ttw(×)  ww%(×)

   (2)、变量名不能与关键字重复。C语言中有32个关键字。
      6个存储类型: auto register extern static volatile const
      12个变量类型: void char short int long struct union enum float double signed unsigned
      1个类型重定义: typedef
      1个 sizeof 求类型大小的关键字
      12个控制语句: if else   switch case   do while   goto   for   return   continue  break   default

       注:在C语言中有32个关键字中,没有define。

   (3)变量名取名字时,尽量要做到见名知意。

   (4)C语言中了,变量名区分大小写。

二、变量存储数据的能力:

   char (8bit)(-128-----127)
   0111 1111(2^7-1=127)
   1000 0000(-128)

   问题:为什么最小值不是:1111 1111呢?
     答案:因为1111 1111的值是-127,没有1000 0000的-128小。

      1    0000000
      |    |
     符号位  数据位

      1:代表负数
      0:代表正数

     unsigned char (0 ---255)
      0000 0000 都是数据位
      1111 1111

     short:(2^15-1 ------- -(2^15))
     unsigned short :(0---65535)

     int:(2^31-1 ------ -(2^31))

三、变量的存储的方式

   在Linux操作系统中,数据是以补码的形式存放的。
    char类型数据:
     源码:                     1000 0101(源码)
     反码:(对源码的除了符号位之外,其它位取反)  1111 1010(反码)
     补码:(在反码的基础上加1)           1111 1011(补码)

     注:正数的源码,反码,补码是一样的。

    char类型:
      128 =
         1000 0000(源码)
         1111 1111(反码)
       -----------------溢出---------------------------
         1000 0000(补码)(-128)

     即:补码转源码:对补码的除了符号位之外,其它位取反,再加1

四、数据打印的格式:

   %c 打印的字符
   %d 打印的整数
   %ld 打印长整型
   %lld 打印长长整形
   %f 打印实型(默认打印小数点后6位(也可通过 .4%f 来限制打印的小数点后的位数))
   %g 打印实型小数点后的(最多5位)有效数据的位
   %Lf 打印long double类型的
   %s 打印字符串类型
   对于short类型,没有规定的打印类型
   %o 以八进制打印
   %#o 以八进制打印(并显示八进制的前缀)
   %x 以十六进制打印
   %#x 以十六进制打印(并显示十六进制的前缀)
   %p 打印地址(一般与 & 取地址符 配合使用)

posted @ 2022-06-21 10:04  皆为过客  阅读(770)  评论(0)    收藏  举报