在程序中运行过程中值可以改变的量叫做变量。变量代表了一个存储单元,用来存放数据的值。变量有3个基本要素:名字、类型和值。
1.变量的定义
在C语言中,要求对变量先定义,后使用。变量定义就是开辟一个指定类型长度的内存空间,并为该空间定义一个对应的名字,如图所示
变量定义
变量定义的一般形式为:
<数据类型> <变量名1>,<变量名2>,......,<变量名n>;
例如:
int a1,a2,a3; /*定义三个整型变量a1,a2,a3*/
char c1,c2,c3; /*定义三个字符型变量c1,c2,c3*/
double r1,r2,r3; /*定义三个双精度浮点型变量r1,r2,r3*/
2.变量的名字
一个变量名对应内存单元中的一块内存空间。在对程序编译链接时由编译系统给每个变量名分配对应的内存空间。从变量中取值,实际上就是通过变量名找到相对应的内存空间,该存储单元中读取数据。
在C语言中用来对变量、符号常量、函数、数组、类型等数据对象命名的有效字符序列统称为标识符。标识符就是一个名字。
标识符的命名规则如下:
1)标识符只能由字母、数字和下划线三种字符组成
2)数字不能在第一位
变量名也是一种标识符,应满足标识符命名规则,
在对变量命名时还应该注意下面的几点
1)字母要区分大小写,如MAX和max是两个不同的变量名
2)不能用C语言的关键字作为标识符,如float不能作为变量名
3)变量名最好可以见名知义,如:year、student等;
3.变量的类型
每种变量都具有一种类型,在定义变量时必须指明其类型。
4.变量的值
一个变量代表计算机内存的某一块存储空间,该存储空间中的内容(存储空间内存放的数据)就是该变量的值。
例如:
int a;
a=3;
定义了一个变量,变量名为a,类型为int,值为3。3就是被存放在变量a的内存空间中的值。
再来介绍几种基本数据类型中的变量形式:
1.整型变量
整型变量是用来存储整型常量的。
1)整型数据类型在内存中的存放形式
整型数据类型在内存中是以补码形式存储的。正数的补码和原码相同;负数的补码是将该数的原码按位取反(符号位不变)再加1.
(1)正数的存放形式
eg.
short int i;
i=10;
i中的值10在内存中的存放形式如下:
0000000000001010
(2)负数的存放形式
eg.
short int j;
j=-10;
-10的原码如下
0000000000001010
-10的反码如下
10101
-10的补码(j中的值-10在内存中的存放形式)如下
10110
2)整型变量的分类
(1) 基本整型:类型说明符为int,在内存中占4个字节(TC中占两个字节)。
(2) 短整型:类型说明符为short int或short,在内存中占两个字节。
(3)长整型:类型说明符为long int或long,在内存中占4个字节。
上述三种类型可以加上修饰符unsigned或signed。如果加上unsigned则是无符号类型;如果加上signed,则是有符号类型(默认是这种)。因此,基于以上三种整型,可扩展成以下六种(带方括号的部分可以省略)类型。
有符号基本整型:[signed] int
无符号基本整型:unsigned [int]
有符号短整型:[signed] short [int]
无符号短整型:unsigned short [int]
有符号长整型:[signed] long [int]
无符号长整型:unsigned long [int]
eg.
int a,b,c; /*定义a、b、c为有符号的基本整形变量*/
long x,y; /*定义x、y为有符号的长整型变量*/
unsigned short p,g; /*定义p、g为无符号短整型变量*/
各种无符号整型变量所占内存空间字节数与相应的有符号整型变量相同。但因为无符号的整型变量没有符号,左边的最高位也用来表示数值,因此无符号的整形变量中可以存放的正数比有符号的范围大了一倍。
有符号短整型变量占两个字节,最大可表示的数为32767,在计算机里的储存形式为
01111
有符号短整型变量占两个字节,最大可表示的数为65535,在计算机里的储存形式为
11111
VC中各类整型变量所占字节数和数值范围如下表所示:
2.实型变量
实型变量是用来存储实型常量值的。
1)实型数据在内存中的存放形式
实型数据在内存中占四个字节(32位),按指数形式存储。实数159.62在内存中的存放形式如下图
实数159.62在内存中的存放形式
一般来说,用三个字节(24位)来存放小数部分(包括数符和尾数),用一个字节(8位)来存放指数部分(包括阶符和阶码)。
2)实型变量的分类
实型变量分为单精度(float)型、双精度(double)型和长双精度(long double)型三类。
定义的方式为:
float x,y; /*定义x,y为单精度浮点型变量*/
double a,b,c; /*定义a,b,c为双精度浮点型变量*/
在VC里,各实型变量所占字节数、有效位数及数值范围如下图所示:
3.字符型变量
字符型变量是用来存储字符常量的。
1)字符型数据在内存中的存放形式
字符型常量是以ASCII码的形式存放在字符型变量的内存单元之中的。每个字符型变量分配一个字节的内存空间,因此只能存放一个字符。
如'x'的的十进制ASCII码是120,'y'的十进制ASCII码是121。对字符型变量a、b赋予'x'和'y'值:
a='x';b='y';
实际上是在a、b两个单元内存放120和121的二进制代码,如下图所示:
字符在内存中的存放形式
2)字符型变量
定义字符型变量的类型说明符是char。
例如:
char a,b; /*定义a、b为字符型变量*/
字符型变量所分配的内存字节数以及数的表示范围如下表所示:
字符变量的输出:
程序运行结果:
由于字符型数据在内存中是以ASCII码形式存放的,所以在输出时可以按字符形式输出,也可以按照整型形式输出。在给字符型变量赋值时,可以直接赋给一个字符型常量,也可以赋给该字符的ASCII码值。
字符型变量中赋整型常量值。
程序运行结果:
文/心月存
如果文章对你有帮助,请投个币吧!(´ . .̫ . `)
如果想了解更多C语言的知识,点个关注,之后会不定期更新。(^O^)
到此这篇条件变量和互斥量(条件变量是什么)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/73080.html