一文读懂编程基础:变量与常量详解
一文读懂编程基础:变量与常量详解
在编程的世界里,数据是程序的灵魂。而变量和常量,作为数据的两种基本存在形式,贯穿于程序设计的始终。本文将带你深入了解变量和常量的概念、使用方法及其在程序中的重要作用。
变量
程序中使用的每个变量在运行程序时都会在内存中占用一段存储空间。变量由两个要素构成:变量的名称和变量的类型。变量的名称是这段存储空间的唯一标识;变量的类型决定了这段存储空间的大小、以及对所存储数据的类型要求等。
变量的定义
定义变量的一般类型是:变量类型 变量名列表;
变量名列表是指一个或多个变量名的序列,如int age,num
变量名是标识符的一种,在程序设计语言中通用来标识变量、符号常量、函数、数组、类型等实体名字的有效字符序列称为标识符
C/C++规定,标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线(最好可以“见名思意”)
变量的类型
常用的数据类型有三种:
- 存储整数要用int型,超过二亿多就要用long long型
- 存储浮点数(就是有小数部分的数)要用double型
- 存储字符(如'A'、'#')等要用char型
变量的赋值
给变量赋予一个值的过程称为变量的赋值通常通过赋值运算符“=”以及赋值语句完成
count = count + 1;在CPU和内存中的运行过程
如果按赋值来读,应该从右往左读,读成“将count+1的值赋给count”;如果从左往右读,可以读成将count的值更新为count+1
如果赋值时,赋值运算符“=”左右两边的数据类型不一样,但可以进行转换,则会自动进行转换具体来讲,如果将一个浮点型数据赋值给整型变量,则只取整数部分;如果将一个整型数据赋值给一个浮点型数据,则小数部分为0
这种在赋值时可以自动进行类型转换的数据类型称为是赋值兼容的,例如:
int num,age = 17.5; //赋值后,整型变量age的值为17
num = 3.14*3*3; //赋值后,整型变量,num的值为28
double f = num; //赋值后,浮点型变量f的值为28.0
局部变量和全局变量
在函数(包括main函数)里定义的变量称为局部变量,对局部变量如果没有进行赋值,则它的值是不确定的(或者称为是随机的值)
在函数外面定义的变量,称为全局变量,对全局变量编译器会自动进行赋值,通常是赋予“零值”
- 对整型数据,零值就是0
- 对浮点型数据,零值就是0.0
- 对bool数据,零值就是fales
变量的引用
变量里存储的数据可以参与表达式的运算,或赋值给其他变量,这一过程称为变量的引用
变量的引用具有“取之不尽,以新充旧”的特点
如果将变量a的值赋值给变量b后,变量a的值保持不变,而变量b的值更新为变量a的值
如果某个变量的值会更新,但该变量更新前的值对后面的程序有用,则需要把该变量更新前的值保存到一个临时变量中
交换两个变量的值:
int a = 5,b = 7;
int t = a; //把a的值暂时保存到t中
a = b; //把b的值赋值给a
b = t; //把t的值赋值给b
常量
所谓常量,就是从字面上即可判别其值的量在C/C++语言中,常量由整型常量、浮点型常量、字符型常量、字符串常量等
(1)整型常量
整型常量3种不同的方式表示:
- 十进制整数:如1357,-435,0等
- 八进制整数:在常数的开头加一个数字0,就表示这是以八进制数形式表示的常数,如020表示这是八进制数(20)8,它相当于十进制数16
- 十六进制整数:在常数的开头加一个数字0和一个英文字母X(或x)就表示这是以16进制数形式表示的常数 如0X20表示 这是16进制数20,即(20)16,它相当于十进制数32
(2) 浮点型常量
一个浮点型常量可以赋值给浮点型变量、整型变量、甚至字符型变量
浮点型常量可以用两种不同的方式表示:
十进制小数形式:如21.456,-7.98等
指数形式(即浮点形式):一个浮点数可以写成指数形式,利用科学计数法
在程序中,用字母e表示其后的整数是指数的幂(底为10),如1e-7表示为10的-7次幂
注意,字母e后面必须是整数,不能是浮点数,也不能是变量
(3)符号常量
可以用#define定义符号常量
凡是以"#"开头的行,都称为“编译预处理”命令行
符号常量也称为宏定义,其一般格式为
#define宏名被替换文本 例:#define PI 3.1415926(用PI替换3.1415926)
其中宏名必须是合法的,标识符是用户自定义标识符,因此不得与程序中其他标识符相同 常约定宏名由大写字母字符组成
数据存储的单位
计量数据大小和存储器存储容量有以下单位
最小单位——位(bit):在计算机中的二进制数系统中,位,简记为b,也称为比特,每个0或1就是一个位(bit)
基本单位——字节(byte):一个字节,简记为B,包含8位(1024为2的10次幂)
1KB(千字节)=1024B
1MB(兆字节)=1024KB
1GB(吉字节,千兆)=1024MB
1TB(太字节)等于1024GB