数据类型
一、常量
常量的表示方法;
1、const关键字
修饰常变量。
作用:定义一种变量,这种变量的值不能被修改,在整个作用域都维持原值。
eg: const int a = 1; // const修饰的常变量
注意:
- const修饰的常变量,本质上是变量。
- 但具有常属性,不能被修改。
2、define定义的标识符常量
#define命令定义标识符常量,该标识符常量在程序中是个定值,
作用:通常用于代表数组容量或涉及数学的常量等。
eg: #define PI 3.14159
#define SIZE 10 // 此处SIZE代表数组元素个数
3、枚举常量 枚举(Enum)类型
使用enum枚举类型,列出所有可能会用到的取值,并给它们取一个名字。
作用:代表实际意义的常量,数值较小且为非负整数,如一周7天等。
二、变量
字符型存储和读取过程:
存储:字符’a’——>码值 (97)——>二进制 (1100001)——>存储()
读取:二进制(1100001)——>码值(97)——> 字符’a’——>读取(显示)
字符和码值的对应关系是通过字符编码表决定的(是规定好)ascll码表部分。
比较全的ascll码表参考:
ASCII码
三、基础类型数据
基本数据类型:
1、整型数据可以用十进制,八进制和十六进制三种形式表达。
考虑到移植性:最佳妥协方案就是把存储于int型变量的值限制在signed int和unsigned int的交集中,这可以获得最大程度上的可移植性。
2、实数(浮点)型
有效数字是指包括整数部分+小数部分的全部数字总数。
eg:
#include<stdio.h>
int main()
{
float a;
double b;
a = 33333.33333;
b = 33333.333333;
printf(" a = %f , b = %lf \n" , a , b );
return 0;
程序执行结果如下:
a=33333.332031 , b=33333.333333
可以看出,由于a为单精度类型,有效数字长度为7位,因此a的小数点后4位并不是原先的数据而由于b为双精度类型,有效数字为16位,因此b的显示结果就是实际b的数值。
3、字符类型
- 一个整型变量也可以存储一个字符常量,而且也是将该字符的ASCH码值(无符号整数)存储到内存单元中。
- 字符变量和整型变量在内存中存储的内容实质是一样的。
注意: - 字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。如’5’和5是不同的。‘5’是字符常量,不能直接参与运算,而只能以其ASCⅡ码值(053)来参与运算。
- C语言中还存在一种特殊的字符常量——转义字符。转义字符以反斜线“\”开头
4、枚举类型
在枚举类型的定义中列举出所有可能的取值,被定义为该枚举类型的变量取值不能超过定义的范围。
为了处理有些变量的取值被限定在一个有限的范围内。例如:一周7天,一年12个月等。
注意:
- 枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。
- 枚举类型定义的一般形式如下。
enum 枚举名
{
枚举值表
};
- enum是关键字,标识枚举类型,定义枚举类型必须以enum开头。
- 在定义枚举类型时花括号中的名字称为枚举元素或枚举常量。它们是程序设计者自己指定的,命名规则与标识符相同。这些名字并无固定的含义,只是一个符号,程序设计者仅仅是为了提高程序的可读性才使用这些名字。
- 枚举元素不是变量,不能改变其值。如下面这些赋值是不对的:
red=8;yellow=9;
5、枚举类型
printf的格式控制字符串组成: %[flags][width][.prec][length]type
分别代表为:%[标志][最小宽度][.精度][类型长度]类型。
详细参考链接:
C语言printf函数使用详细说明