C语言的数据类型运算符表达式
基本数据类型
基本数据类型最主要的特点是, 其值不可以再分解为其它类型。 也就是说, 基本数据类型是 自我说明的。
构造数据类型构造数据类型
是根据已定义的一个或多个数据类型用构造的方法来定义的。 也就是说, 一个构造类型的值 可以分解成若干个“成员”或“元素”。 每个“成员”都是一个基本数据类型或又是一个构造类 型。在 C 语言中,构造类型有以下几种:
?数组类型
?结构类型
?联合类型
指针类型
指针是一种特殊的, 同时又是具有重要作用的数据类型。 其值用来表示某个量在内存储器中 的地址。 虽然指针变量的取值类似于整型量, 但这是两个类型完全不同的量, 因此不能混为一谈。
空类型在调用函数值时, 通常应向调用者返回一个函数值。 这个返回的函数值是具有一定的数
据类型的, 应在函数定义及函数说明中给以说明, 例如在例题中给出的 max 函数定义中, 函数头 为: int max(int a,int b); 其中“ int ”类型说明符即表示该函数的返回值为整型量。又如在 例题中, 使用了库函数 sin ,由于系统规定其函数返回值为双精度浮点型, 因此在赋值语句 s=sin (x); 中, s 也必须是双精度浮点型,以便与 sin 函数的返回值一致。所以在说明部分, 把 s 说明 为双精度浮点型。但是,也有一类函数,调用后并不需要向调用者返回函数值,这种函数可以
定义为“空类型”。其类型说明符为 void 。在第五章函数中还要详细介绍。在本章中,我们先 介绍基本数据类型中的整型、浮点型和字符型。其余类型在以后各章中陆续介绍。
对于基本数据类型量, 按其取值是否可改变又分为常量和变量两种。 在程序执行过程中, 其 值不发生改变的量称为常量,取值可变的量称为变量。它们可与数据类型结合起来分类。例如, 可分为整型常量、 整型变量、 浮点常量、 浮点变量、 字符常量、 字符变量、 枚举常量、 枚举变量。 在程序中,常量是可以不经说明而直接引用的,而变量则必须先说明后使用。
整型量
整型量包括整型常量、整型变量。整型常量就是整常数。在C语言中,使用的整常数有八进制、 十六进制和十进制三种。
整型常量
八进制整常数八进制整常数必须以 0开头,即以0作为八进制数的前缀。数码取值为 0?7。 八进制数通常是无符号数。
以下各数是合法的八进制数:
015( 十进制为 13) 0101( 十进制为 65) 0177777( 十进制为 65535) 以下各数不是合法的八进制数:
256( 无前缀 0) 03A2( 包含了非八进制数码 ) -0127( 出现了负号 )
十六进制整常数
十六进制整常数的前缀为 0X或Ox。其数码取值为0?9, A?F或a~f
以下各数是合法的十六进制整常数:
0XFFFF ( 十进制为 65535)0X2A(十进制为42) 0XA0
0XFFFF ( 十进制为 65535)
以下各数不是合法的十六进制整常数:
5A ( 无前缀 0X) 0X3H ( 含有非十六进制数码 )
十进制整常数
十进制整常数没有前缀。其数码为0?9。
以下各数是合法的十进制整常数:
237 -568 65535 1627
以下各数不是合法的十进制整常数:
023 ( 不能有前导 0)23D ( 含有非十进制数码 )
在程序中是根据前缀来区分各种进制数的。 因此在书写常数时不要把前缀弄错造成结果不正 确。 4.整型常数的后缀在 16 位字长的机器上, 基本整型的长度也为 16 位, 因此表示的数的范围 也是有限定的。十进制无符号整常数的范围为 0?65535,有符号数为 -32768 ?+32767。八进制 无符号数的表示范围为0?0177777。十六进制无符号数的表示范围为0X0?OXFFFF或0x0?
OxFFFFo如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“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