C++/变数及资料型态

维基教科书,自由的教学读本
< C++
跳到导航 跳到搜索

变数,可以想像成是一个箱子,在里面放一个数字,而我们随时可以将这个数字拿出来使用或做修改。

简介[编辑]

变数可以储存数字、字元、布林值等等数值,但对于电脑来说,这些都是数字,因为电脑只用0与1在工作,而要把数字可以转换成0与1是很容易的:

十进位

位值

100 10 1
102 101 100
二进位

位值

4 2 1
22 21 20

将其转换成较好理解的方式就是:十进位的数字是若干的硬币,将其填入格子中,同一直排必须完全填满或完全不填,如下表所示。

12个铜板
O X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

O
O
O
O O
O O
O O
O O
1 1 0 0

所以1210=11002

既然数字可以转换成电流的开关储存,那就只要把其他东西转换成数字较好了,最简单的像是:布林值可以转换成0和1;字元可以用编号的方式,例如'+'是2316

使用[编辑]

建立[编辑]

int i;

那么多种的资料型态都可以储存,所以在宣告一个变数时需要告诉电脑它储存的是什么,这是这个语言的设定。所以当然也有一些语言是不用告诉电脑“资料型态(又称资料型别)”的,例如JavaScript:

var i;

你会发现,var是“变数”的缩写,那么int又是什么(不是感叹词)?底下将会介绍大部分资料型别,以及一些“修饰子(又称修饰词)”。

资料型别[延伸]
型别 中文 备注 大小 基本?
int 整数 -2147483648 ~ +2147483647 4 O
shortshort int 短整数 -32768 ~ +32767 2 X
longlong int 长整数 通常与整数相同,看系统等等 4 或 ??? X
char 字元 -128 ~ +127ASCII字元) 1 O
bool 布林值 true(非零值) & false(零) 1 O
float 单精度浮点数 ±1038 ~ ±10-38,误差较大,建议用double 4 O
double 倍精度浮点数 ±10308 ~ ±10-308,浮点数一般用它 8 O
double double 倍倍精度浮点数 不常用又占记忆体空间 ??? X
string 字串 <cstring>中额外定义 ??? X
???(很多,不列举) ???(无中文) <windows.h>中定义的,是Win API会用的 ??? X
修饰词
中文 备注
auto 自动 只能用于{}内,无指定时预设,进入区块内才会被建立,离开区块才会释放空间
static 静态 要等所有程式执行结束才会释放空间,没设初始值预设0
extern 外部 没设初始值预设0,全域变数,在区块外使用可以省略,函数内部宣告不会实际分配记忆体,外面要有一个同名变数的宣告
static extern 静态外部 静态加上外部,但仅限于同意档案使用
register 暂存器 用CPU的暂存器储存,读写较快,对于频繁存取的变数是较好的选择,但因为暂存器空间有限,当其超过上限,系统会自动将它换成一般变数