数据类型
1.基本数据类型:
基本数据类型最主要的特点是,其值不可以分解为其他类型。也就是说,基本数据类型是
自我说明的
2.构造数据类型:
构造数据类型是根据已定于的一个或多个数据类型用构造的方法来定义的。也就是说,
一个构造类型的值可以分解为若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。在c语言中
构造类型有以下几种:
·数据类型
·结构体类型
·共同体(联合)类型
3.指针类型:
指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来表示某个变量在内存储器中的地址。虽然指针变量的取值
类似与整型量, 但这是两个类型完全全不同的量, 因此不能混为一谈。
4.空类型:
在调用函数值时, 通常应向调用者返回一个函数值。这个返回的函数值是具有一定数据类型的,应在函数 定义和函数说明中给予说明, 例如在例题中给出的max函数定义中, 函数头为int max(int a, int b); 其中“int”类型说明符即表示该函数的返回值为整型量。但是, 也有一类函数,调用后并不需要向调用者返回 函数值,这种函数可以定义为“空类型”。其类型说明符为“void”, 在后面继续介绍
常量
整型, 浮点, 字符, 枚举等
在执行过程中,其值不发生改变的量称为常量。
符号常量:用标识符代表一个常量。在c语言中, 可以用一个标识符表示一个常量, 称之为符号常量。
符号常量在使用之前必须先定义, 其一般形式为:
#define 标识符 常量
其中#define 也是一条预处理命令(预处理命令都以#开头), 称为宏定义命令(在后面预处理程序中将进一步介绍), 其功能是把标识符定义为其后的常量值。一经定义, 以后在程序中所有出现该标识符的地方均代之以该常量值。
注意:习惯上符号常量的标识符用大写字符, 变量标识符用小写字母, 以示区别。
#include <stdio.h> #include <stdlib.h> #define AAA 20 void main() { printf("%d", AAA); }
变量
整型, 浮点, 字符, 枚举等
其值可以改变的量称之为变量。一个变量应该有一个名字, 在内存中占据一定的存储单元。
变量定义必须放在变量使用之前。一般放在函数体的开头部分。要区分变量名和变量值是两个不同的概念
整型
八进制整常数:
八进制整常数必须以0开头, 即以0作为八禁进制数的前缀。数码取值为0~7.八进制数通常为无符号数。 以下各数是合法的八进制: 015(十进制13)、0101(十进制为65)、0177777(十进制为65535)
十六进制整常数:
十六进制整常数的前缀为0x或0X.其数码取值为0~9, A~F或a~f. 以下各数是合法的十六进制整常数: 0X2A(十进制为42), 0XA0(十进制为160), 0XFFFF(十进制为65535);
整型常数的后缀:
在16位字长的机器上,基本整型的长度也为16位, 因此表示的数的范围也是限定的。 十进制无符号整常熟的范围为0~65535。 八进制无符号数的表示范围为0~0177777. 十六进制无符号数的表示范围为0X0~0XFFFFF或0x0~0xFFFFF。 如果使用的数超过了上述范围, 就必须用长整型数来表示。长整型数是用后缀"L"或‘l’来表示的
整型变量的分类, 默认int是有符号
整型变量的分类
格式:
int a, b, c; 注意别忘了分号和英文的逗号
放在函数的开头
(注意:这里占多少个字节跟系统和编译器规定有关!可以在编译器上自己试试查看)
1. 基本型:类型说明符为int, 在内存中占4个字节。
2. 短整量:类型说明符为short int 或short。所占字节和取值范围均与基本型相同。
3. 长整型:类型说明符为long int 或long。
4.无符号型:类型说明符为unsigned。(包括unsigned int, unsigned short int , unsigned log)
标注:下图的wchar_t 表示的是
char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。
wchar_t数据类型一般为16位或32位,但不同的C或C++库有不同的规定,如GNU Libc规定wchar_t为32位,总之,wchar_t所能表示的字符数远超char型。
欠:后期补充,因为没有搞懂unsigned
注意:整型的每一种都有无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。
#include <stdio.h> //查看编译器的字节数 void main() { printf("%d", sizeof(int)); }
整型数据的溢出
负数十进制的补码
浮点型(实型)4字节(32位)
浮点数常量的表示方法:
浮点型也成为实型。也可以称为世数或者浮点数。在c语言中, 浮点数只采用十进制。
他有两种形式:十进制小数形式, 指数形式。
1)。 十进制形式: 例如:0.00, 25.00, 2323.2324, 1423.23232332, -232342342.02323等
2)。指数形式: 由十进制数, 加阶码标志"e"或“E”以及阶码(只能为整数,可以带符号)组成。 形式: aEn(a为十进制数, n为十进制整数) 4.576064086519205e-47 #0.00002323**10
2.2E5 意思就是2.2 * 10的5次方 == 2.2 * 10^5(或者10**5)
-2.5E-2 意思就是-2.5 * 10^-2 (10^-2 就是0.01) 结果是0.025
浮点数分类
单精度: float
双精度: double
长双精度: long double