变量的声明
在不考虑作用域和存储类型的情况下,变量的声明包括两部分。
- 数据类型
- 变量名
在C语言中语句都以英文;结尾。
int x;
上面这个语句表示声明一个名为x的整型变量。变量名字不一定要叫x,可以叫任意符合规定的名字。变量名字有以下约束:
- 不能使用关键字作为变量名
- 只能由字母(包含大小写),数字,下划线(_)组成
- 只能由下划线或者字母开头
c语言中的关键字有:
根据以上约束我们知道:
a,x,r3,rR,r_7_BoOk,_uu都是合法的标识符,合法的标识符可以用来做变量名,函数名。
3s,S/s,s-p,s*p,-book都是非法的标识符。第一个错在数字开头,第二个错在非法字符/,第三个错在非法字符-,第四个错在非法字符*,第五个错在-开头。
数据类型
我们知道计算机只认识0和1,因此在计算机中数据同样也是用二进制表示的。如果我们定义了一个整数10,
int a;
a=10;
它在计算机中存储情况如下
一个字节就是8位,每一位只能存0或者1.
数值都是以补码的形式存储在计算机中,正数的补码和原码相同,负数的补码就是相反数的原码按位取反加1。
整数类型
整数类型分为
- 基本型int。占用两个字节取值范围是-32768~32767
- 短整型short int或者写成short。占用字节数和取值范围和int相同。
- 长整型long int或者写成long。占用四个字节。取值范围-2147483648-2147483647
- 无符号型unsigned。这种类型可以和前面三种类型组合使用分别为unsigned int或者unsigned,unsigned short,unsigned long,占用空间和对应的有符号整型一样,但是无符号数不表示负数。因此unsigned int和unsigned short取值范围为0~65535,unsigned long取值范围为0~4294967295。
浮点数
在c语言中,浮点数有两种表示方法
- 十进制数和小数点组成。比如说0.0,25.0,5.345,0.12,300.,-23.120等都是合法的浮点数表示。注意必须要有小数点。
- 指数形式。由十进制数,加上阶码标志''e"或者"E",以及阶码组成,其中阶码只能为整数,可以带符号。一般形式是aEn,值为a*
。类似于科学计数法,不同之处在于科学计数法要求a的范围是大于等于1小于10的实数,而在这里没这种要求。对于2.1E5,3.7E-2,0.5E7,-2.8E-2都是合法的浮点数,他们分别表示了2.1*
,3.7*
,0.5*
,-2.8*
。对于345,E7,-5,53.-E3,2.7E都不是合法的浮点数,他们不对的地方分别是:没有小数点,E前面没数字,没有阶码标志,负号的位置不对,没有阶码。c中还允许使用后缀。后缀为f或者F即表示该数是浮点数。比如说87F和87.是等价的。
浮点数分为三类:float单精度,double双精度,long double长双精度。
占用字节数和取值范围如下:
小结
作用域和存储类型后续篇章单独讲解。目前我们知道的变量的声明是 类型加标识符。
例如int a;声明变量a为整型
int a,b;声明a,b为整型。
float a;声明浮点数a。
我们也可以在声明的时候进行赋值。
float a=34.6;声明变量a并初始化为34.6。
unsigned long b;声明一个无符号长整型。