常量变量数据类型

1.变量名:

是数字和字母组成的序列,但第一个字符必须是字母,下划线_被看做是字母。在c语言中,一般变量用小写字母,字符常量用大写字母。

2.数据类型及长度


/*确定由signed unsigned 限定的char short int 与long类型变量的取值范围*/
#include <stdio.h>
#include <limits.h>  //该头文件里包含各数据类型的取值范围
 
int main ()
{
  printf("Size of Char %d\\n", CHAR_BIT);       //这些变量都是在<limits.h>中定义的
  printf("Size of Char Max %d\\n", CHAR_MAX);
  printf("Size of Char Min %d\\n", CHAR_MIN);
  printf("Size of int min %d\\n", INT_MIN);
  printf("Size of int max %d\\n", INT_MAX);
  printf("Size of long min %ld\\n", LONG_MIN);     
  printf("Size of long max %ld\\n", LONG_MAX);       
  printf("Size of short min %d\\n", SHRT_MIN);  //注意是SHRT
  printf("Size of short max %d\\n", SHRT_MAX);
  printf("Size of unsigned char %u\\n", UCHAR_MAX);  //注意没有UCHAR_MIN 因为是0
  printf("Size of unsigned long %lu\\n", ULONG_MAX); 
  printf("Size of unsigned int %u\\n", UINT_MAX);    
  printf("Size of unsigned short %u\\n", USHRT_MAX); 
 
  return 0;

}
  • int 整形 长度通常是16位或32位,根据编译器不同而不同

    short int;long int;

  • char 字符型 通常是一个字节 8位

    signed和unsigned可以用来限定整形和字符型;

    signed char;代表着有符号即由正负,所表示的范围为-128-127

    unsigned char;代表着都是正值,所表示范围为0-255

  • float 浮点型

    float ;long float;double;

  • enum 枚举类型

    question:书上说,枚举类型只能在内部使用,如果要输入上例中color yellow的值,只能输入1,而不是单词yellow,或者,让程序先读入字符串“yellow”,再将其转换为yellow的值,这些是什么意思?

    • 可以使用该类型声明符号名称来表示整形常量,通过enum关键字可以创建一个新的“类型”,并且可以指定他可具有的值

      eg: enum yanse{red, yellow,blue,green }

          ***enum yanse color;*** 
      

      这里enum yanse就可以被允许成为一个新的类型名,声明了变量color,而这个新的类型名,代表其变量所有可能取的值是red、yellow、blue、green。

    • 枚举的这些常量叫做枚举符(例子中的red、yellow等)

  • _Bool 布尔类型表示布尔值

    • 逻辑值TRUE和FALSE,分别是非0和0。其实也是一种整数类型,但仅占用1位空间。

3.常量:

  • 整数:无符号整数没什么好说的,有符号整数,用最高位表示正负,1表示-,0表示正。但这种方法表示的缺点在于,有两个0,一个是+0一个是-0,造成了浪费,所以目前计算机储存有符号整数是用二进制补码形式进行储存。正数与原来相同,不同的是负数的辨别,在原来,10000000指的是-0,但用二进制补码的形式,即做个运算用100000000(256)减去10000000(128),得到128,1代表着负,所以10000000则可以表示-128而不再表示-0,范围变成-128-127.负值最高位还全都是1,也就是从10000000(128)到11111111(255),用256去减,刚好是1-128,加上最高位是1,是-1—128;注意的是如果是正数,最高位全部是0,不参与数值,而负数补码在是参与数值的,之前的不参与

    💡 1.加前缀0表示八进制,如020(16)

    2.加前缀0x或0X表示十六进制,如0x10(16)

  • 浮点数:如3.14159、.2、4e16、.8e-5

    • 计算机用一位的符号位和小数部分和指数部分来储存

    • 系统自定认为浮点型常值数是double型,比如说定义了一个float c=4.0*2.0;4.0与2.0都是double型,运算也会双精度进行运算,但最后会将乘积存在float型c中,精度高但运行速度慢,所以在不需要的时候,可以加后缀改变系统自定的数据类型。

      💡 1.后缀加f或F表示float类型 如可以float c=4.0f*2.0f

      2.不加后缀,系统默认为double

      3.后缀加l或L表示long float型,如4.32l或5.34L

  • 字符常量:用单引号括起来的单个字符(只能是单个字符),如’A’、’T’;一个字节,使用字符变量储存

    如char a=’A’;也可以用char a=65;但一般不这样使用

  • 💡 需要注意的是,如果将转义序列赋给字符变量时,也要加‘’,如char beep=’\a’;

    转义字符是单个字符

  • 字符串常量:用双引号括起来的0个或多个字符组成的字符序列 如“Hello World!”、“”是空字符串,不限制长度,使用字符数组char[]储存;

    • 字符串常量就是字符数组,字符串内部会使用一个空字符\0来作为结束。
    • 字符串的长度自己定义,如char[40],是指这个字符数组可以容纳40个字符(准确是39个,因为还有一个字节要留给\0)
  • 枚举常量:枚举是一个常量整型值的列表 如enum boolean{ NO, YES }

    • 没有显示说明的情况下,enum类型中第一个枚举符的值为0,第二个为1,以此类推。

    • 如果有说明,只指定了部分枚举符的值,那么未指定的枚举符值将按照最后一个指定值依次类推。

      eg: enum months( JAN=1,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC) FEB的值是2,MAR是3,以此类推。

    • 枚举符都是有数值的整形常量,这些枚举符如JAN成为一个有名称的常量,其的数值为1,只要能使用整形常量的地方都可以使用枚举常量,如可以用枚举常量来表示数组大小等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值