常量

一,常量

1,整型常量(如10,123450 ,- 345等都是整型常量.)

!-----整型常量分为以下三种。

1     八进制:04,075,-034L 

2     十进制:8932,-3564L

3     十六进制 :0x45,0x3A

#-----前缀:开头加的0,0x,分别表示的是对应的进制。

@----后缀:

在一个整型常量后面加一个字母l或 L,则认为是 long int 型(长整型)常量,如 28,10L 等。

在一个整型常量后面加一个字母 u或 U,则认为是 unsigned int 型(短整型)常量,即无符号整数

举例:345u,0x3CL,076lu。

2,实型常量

!----有两种表示形式

1   十进制小数形式:由数字和小数点组成如: 12.5,0.35 ,- 6.7, 0.0,12.0等。(注意:必须带小数点)

2   指数形式:如 12.34e3(代表 12.34 X10 3),-12.34e -3(代表-12.34 X10 -3),0.145E -25(代表 0.145X10 -25)等)

3    注:e或E之前必须有数字,且e或E后面必须为整数(为10的多少次方)。如不能与成e4,12e2.5。(e前e后必有数,e后必须为整数)

@----(程序阅读题输出时 )规范化的指数表示形式:小数点前只有一位非零数字,小数后面的部分占6位,指数部分占4位,共13位。如:1.23e -2,%e输出时以规范化形式输出1.230000E-002

 %-----实型常量默认为double,若为想为float型则后面加f,如3.23f

3,字符常量

!----有两种形式的字符常量:(共性)

字符常量是指用一对单引号括起来的一个字符。如    'a‘    ’9'      ’!'   ‘\n'   等。其中的单引号只起定界作用,并不表示字符本身,所以单引号被称为字符常量的“定界符”。

字符常量只能用单引号括起来,不能用双引号或其他括号。

在C中,指定用1个字节( 8位)存储一个字符单元,其中首位为0。

字符常量只能是单个字符,不能是字符串,当然也不可为空,因为这样将会违背计算机存储数据的本质了。

转义字符表示一个字符,会占用一个字节长度。

字符常量(字符串常量)来被计算机存储数据的本质:字符常量存储在计算机存储单元中时,并不是存储字符(如 a,z,#等)本身,而是以其代码(一般采用ASCII代码)来存储的在计算机里面的。例如字符a的ASCII代码是 97,因此,在存储单元中存放的是 97(以二进制的形式存放的),而不是字符a。

1   普通字符:

用单撇号括起来的一个字符,如 :  ' a ' , ' ? ', ' #' .不能写成, ' ab' , ' 23 ' , ' a?' (注: 区分大小写)。  特别注意:以单撇号括起来的一个字符才称作为普通字符。

字符常量存储在计算机存储单元中时,并不是存储字符(如 a,z,#等)本身,而是以其代码(一般采用ASCII代码)来存储的在计算机里面的。例如字符a的ASCII代码是 97,因此,在存储单元中存放的是 97(以二进制的形式存放的),而不是字符a。

字符可以是字符集中任意字符,但数字被定义为字符型之后参与运算的含义与数字不同。如'5'和 5 是不同的。'5'的 ASCII 值为十进制的53,而5的ASCII值为十进制的5。 ‘5’是字符常量,不能直接参与运算,是需要通过字符常量转为对应的ASCLL值(10进制的值)才可以直接参与数值运算,而 5 是数值常量,可以直接参与数值运算。更为本质:字符1点和整数1是不同的概念,字符1只是代表一个形状为 1的符号,在需要时按原样输出,在内存中以ASCII码形式存储,占1个字。而整数1是以整数存储方式(进制补码方式)存储的,占2个或4个字节。

 

 

ASCLL码表如下:表中的某些规制如下

a=97,b=98, c=99,d=100,---------------x=136,y=137,z=138

A=65 , B=66 ,   C=67, D=68 ,-----------------X=104 ,Y=105 ,Z= 106

字母都是渐增一;小写字母-大写字母=32(10进制)

2   转义字符:(大小写严格区分的)

除了以上形式的字符常量外,C还允许用一种特殊形式的字符常量,就是以字符\开头的字符序列的转义字符。 特别注意:以反斜杠开头的字符才称作为转义字符。

\n:换行,将当前位置移到下一行的开头。如下图,在以下字符串里面写入了一个\n,当程序读到它时,执行将当前位置移到下一行的开头的位置继续输出。

 \t:水平制表符:将当前位置移到下一个tab位置,一个tab也就是8个字符位。当一组字符串当中插入一个 \t时,前面的字符数量如果大于等于8,小于16的话,按照两个tab位来处理。简单点说就是,当遇到\t时,前后不可紧挨着,若前后不可紧挨着,则另起一个tab位。

  \b:退格,将当前位置后退一个字符,并将其覆盖。

 \ x  :一个号( x),可以输出此X字符,该X字符可以为所有范围内字符,包括转义字符和普通字符。

\000:1~3位八进制码对应的ASCII 字符(是字符,不是8进制数字,与该八进制码对应的字符。

\xhh :1~2 位十六进制码对应的 ASCII字符(是字符,不是16进制数字),与该十六进制码对应的字符 。,

\a:警告,产生声音或视觉信号。等000

 4,字符串常量

!----字符串常量是用一对双撇号括起来的字符序列,如"boy","123","a"等。字符串常量是双撇号中的全部字符(但不包括双撇号本身)。注意不能错写成'boy','!''123','a'。单撇号内只能包含一个字符,双撇号内可以包含一个字符串。

#----字符常量与字符串常量不同,不能把一个字符串常量赋给一个字符变量;”即, “char c="a";”或“char c="abc",都是错误的。

@----计算机在存储字符串常量时的本质:每个字符串尾都会自动的加一个字符0(’0')来作为字符串结束标志(会占用存储空间),所以字符串是可以为空的。

在C语言中没有专门的字符串变量,若想将一个字符串存放在内存中,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中的每一个元素存放一个字符。

5, 符号常量

!----常量可以用一个标识符来表示,称为符号常量或宏常量,该标识符与此常量是等价的,可以在程序开头用# define命今来定义一个符号常量。

@---宏定义的一般形式为   #define   标识符   字符串   ;    #define  PI 3.14 //注意结尾没有分号。

¥----经过以上的指定后,本文件中从此行开始所有的PI都代表3.1416。在对程序进行编译前,预处理器先对PI进行处理,把所有PI全部置换为3.1416。

&----要区分符号常量和变量,不要把符号常量误认为变量。符号常量不占内存,只是-临时符号在预编译后这个符号就不存在了故不能对符号常量赋以新值。

%----优点 : 1 含义清楚。2 “一改全改”

 

posted @ 2023-11-10 23:33  iaaaa  阅读(6)  评论(0编辑  收藏  举报