C语身教程第二章: 数据类型、运算符、表达式(2)

在按次中是依据前缀来区分种种进制数的。因此在誊写常数时不要把前缀弄错形成了局不切确。4.整型常数的后缀在16位字长的呆滞上,根基整型的长度也为16位,因此体现的数的范围也是无限制的。十进制无标志整常数的范围为0~65535,有标志数为-32768~ 32767。八进制无标志数的体现范围为0~0177777。十六进制无标志数的体现范围为0X0~0XFFFF或0x0~0xFFFF。要是哄骗的数超越了上述范围,就必需用长整型数来体现。长整型数是用后缀“L”或“l”来体现的。比方:
十进制长整常数 158L (十进制为158) 358000L (十进制为-358000)
八进制长整常数 012L (十进制为10) 077L (十进制为63) 0200000L (十进制为65536)
十六进制长整常数 0X15L (十进制为21) 0XA5L (十进制为165) 0X10000L (十进制为65536)
  
  长整数158L和根基整常数158 在数值上并无区别。但对158L,因为是长整型量,C编译系统把为它分配4个字节存储空间。而对158,因为是根基整型,只分配2 个字节的存储空间。因此在运算和输出款式上要予以详尽,防止出错。无标志数也可用后缀体现,整型常数的无标志数的后缀为“U”或“u”。比方: 358u,0x38Au,235Lu 均为无标志数。前缀,后缀可同时哄骗以体现种品种型的数。如0XA5Lu体现十六进制无标志长整数A5,其十进制为165。

整型变量

整型变量可分为以下几类:
1.根基型
类型声名');符为int,在内存中占2个字节,其取值为根基整常数。
2.短整量
类型声名');符为short int或short'C110F1。所占字节和取值范围均与根基型沟通。
3.长整型
类型声名');符为long int或long ,在内存中占4个字节,其取值为长整常数。
4.无标志型
类型声名');符为unsigned。
无标志型又可与上述三品种型婚配而组成:
(1)无标志根基型 类型声名');符为unsigned int或unsigned。
(2)无标志短整型 类型声名');符为unsigned short
(3)无标志长整型 类型声名');符为unsigned long
种种无标志类型量所占的内存空间字节数与照应的有标志类型量沟通。但因为省去了标志位,故不克不及体现负数。 下表列出了Turbo C中种种整型量所分配的内存字节数及数的体现范围。
类型声名');符    数的范围     分配字节数
int       -32768~32767     ■■
short int    -32768~32767     ■■
signed int    -32768~32767     ■■
unsigned int   0~65535        ■■
long int  -2147483648~2147483647  ■■■■
unsigned long  0~4294967295     ■■■■
整型变量的声名');
变量声名');的一样一样平常伟风雅式为: 类型声名');符 变量名标识符,变量名标识符,...; 比方:
int a,b,c; (a,b,c为整型变量)
long x,y; (x,y为长整型变量)
unsigned p,q; (p,q为无标志整型变量)

在誊写变量声名');时,应详尽以下几点:
1.许可在一个类型声名');符后,声名');多个沟通类型的变量。各变量名之间用逗号距离。类型声名');符与变量名之间至少用一个空格距离。
2.开头一个变量名之后必需以“;”号末尾。
3.变量声名');必需放在变量哄骗之前。一样一样平常伟大放在函数体的开头部分。
[Practice] //1int a,b;
short int c;
short d=100;
a=d-20;
b=a d;
c=a b d;
d=d-a c-b;'Vtable
a,2,0
b,2,0
c,2,0
d,2,100
of Vtable
'Vupdate
1,0;2,0
3,0
4,100
1,80
2,180
3,360
4,200
of Vupdate
of Practice
[Practice] //2int a=5;
int b=9;
long int c;
long d;
c=a b-7;
d=a*b*c;
c=d*d*d;
a=c-d;'Vtable
a,2,5
b,2,9
c,4,0
d,4,0
of Vtable
'Vupdate
1,5
2,9
3,0
4,0
3,7
4,315
3,31255875
1,-5112
of Vupdate
of Practice
[Practice] //3int a=6,b=19;
unsigned int c;
int d;
c=a-b 7;
d=b*c;
a=b c d;
b=-a;'Vtable
a,2,6
b,2,19
c,2,0
d,2,0
of Vtable
'Vupdate
1,6;2,19
3,0
4,0
3,65530
4,-114
1,-101
2,101
of Vupdate
of Practice
void main(){
long x,y;
int a,b,c,d;
x=5;
y=6;
a=7;
b=8;
c=x a;
d=y b;
printf("c=x a=%d,d=y b=%d\n",c,d);
}
把main声名');为前往void,即不前往任何类型的值
x,y被定义为long型
a,b,c,d被定义为int型
5->x
6->y
7->a
8->b
x a->c
y b->d
浮现按次运转了局 of long x,y;
int a,b,c,d;
c=x a;
d=y b;
  从按次中可以看到:x, y是长整型变量,a, b是根基整型变量。它们之间许可举走运算,运算了局为长整型。但c,d被定义为根基整型,因此开头了局为根基整型。本例声名');,分歧类型的量可以参加运算并相互赋值。其中的类型转换是由编译系统自动完成的。有关类型转换的正直把在往后介绍。



版权声明: 原创作品,许可转载,转载时请务必以超链接方法标明文章 原始理由 、作者信息和本声明。否则将究查司法责任。

原文地址:https://www.cnblogs.com/zgqjymx/p/1975629.html