上一章学习了常量,再来看下什么是变量
什么是常量?
常量又称为常数,是在程序运行过程中其值不能改变的数据,例如: -1,938等等。
常量有以下几种:整形常量
、实型常量
、字符型常量
、字符串常量
、符号常量
。
什么是变量?
变量是在程序运行过程中,其值可以改变的数据。
变量具有三种属性:
1、变量名
每个变量都必须有一个名字,即变量名。变量名要采用小写英文字母。
2、变量值
在程序运行过程中变量的值存储在内存,并通过变量名来引用变量的值。变量中所保存的数据称为该变量的值,变量值的数据类型与变量的数据类型一致。
3、变量类型
变量类型可以是任何一种数据类型,既可以是基本整型、短整型、长整型、无符号基本整型、无符号短整型、无符号长整型、单精度实型、双精度实型和字符型等基本类型,也可以是数组型、结构体类型等构造类型,也可以是指针类型。每个变量都要占用若干个连续的内存字节以保存数据,所占用的内存字节数取决于变量的数据类型,所占用的第一字节的地址称为变量的地址。C语言规定,变量的地址用 “ &变量名 ”表示。
变量的数据类型
整型变量
根据占用内存字节数的不同,整型变量分为四种,即:
基本整型,类型关键字为int
短整型,类型关键字为short[int]
长整型,类型关键字为long[int]]
无符号整型,又分为无符号基本整型(unsigned [int])、无符号短整型(unsigned short)和无符号长整型(unsigned long)三种。
[]是可选的意思
内存
上面各种类型的整型变量占用的内存字节数,随着编译系统的不同而不同。
在16位编译器中,一般一个int型变量占用2字节,且long型(4字节)>= int 型(2字节) >= short型(2字节);
而在32位编译器中,一个int型变量占用4字节,long型变量占用4字节,short型变量占用2字节。可以用 sizeof(类型标识符) 测量某一类型所占用的内存字节数。
显然,不同类型的整型变量,占用的内存字节数不同,其值域也不同。占用内存字节数为n的有符号整型变量,其值域为 ~ ();占用内存字节数为n的无符号整型变量,其值域为0~()。例如:16位PC中的一个int型变量,占用内存2字节,其值域为 ~ ,即-32768~32767;一个unsigned型变量的值域0~(),即0 ~ 65535。
实型变量
实型变量分为两种:
单精度实型,类型关键字为float,一般占用内存4字节,保留6~7位有效数字。
双精度实型,类型关键字为double,一般占用内存8字节,保留15~16位有效数字。
例如:
float a;
a = 123456.789; // 实际a的值是123456.7,仅保存7位有效数字。
由于实型变量占用有限的内存单元,因此能够提供的有效位数总是有限的,有效位之外的数字将被舍去,由此将会产生一些误差。应当避免将一个很大的数和一个很小的数直接相加或相减,否则将会“丢失”小的数。
字符型变量
字符型变量的类型关键字是char,存放的是字符的ASCII码值(无符号整数),占用内存1字节。
需要注意的是,字符串只能是常量,C语言中没有字符串变量,而是用字符数组存放字符串变量。