勤奋的竹子深夜来写博客了,这篇博客主要讲解如何定义变量及变量类型
先上张大图
所谓变量,其实就是类似于向电脑要一个特定的盒子装特定的数据
图片有点糊,但应该能看清,这里主要需要记的是char(字符型),int(整型),double(实数型),long long(这张图里没有,实际上就是比int存储范围大一点),bool(布尔型 这张图里也没有),string(字符串),这篇博客就先讲解这几个,后面我们还会学到结构体,队列,栈什么的,这些以后再说
char(字符型)
什么是字符呢,就是类似于A,B,c,d什么的字母,数字等,一个char类型中只能存储一个字符,它占用的内存是1字节到2字节(关于内存这个我会在这篇博客的结尾讲解)
string(字符串型)
字符串顾名思义就是一堆字符链接在一起,一个string类型就相当于一个动态的char数组(关于数组这个我会在后面专门写博客讲解)
int(整型)
int类型可以存储一个大概 -2e9 ~ 2e9 的数据(1e9大概为十的九次方),当然存储的是整数,如果你给它强制赋值一个浮点数(比如2.5),它会自动向下取整(2.5会变成2),内存占用四个字节
long long(长整型)
long long其实就是可以存下比int还要大得多的数据(比如1e18),其他差不多都和int相同,当然了,它占用的内存也比较大(我记得是有8个字节了)
那这里就会有人问了,既然能强制往int中存浮点数,那么能不能往int中存1e18呢
当然不行! 不然还要long long干什么,如果你这么干了,会存入一个非常奇怪的数字(老话说的好 : 三年OI一场空,不开long long见祖宗)当然后面会教你们如何判断要用long long 还是int(long long也不能乱开,小心MLE)
double(实数型)
上面看了这么多,应该也能猜出来double其实就是可以存储小数,占用内存是8个字节
bool(布尔型)
bool占用的内存也是1~2个字节,它只有两个值False和True,非0既真,也就是说,除非你往里面存0或False,其他值存进去都为真,bool类型一般会在条件判断时用到
变量的声明及赋值
先上代码
#incldue <iostream>
using namespace std;
int h;
int main(){
int a, b;
double c = 2.5;
bool v = 0;
long long d;
string s;
char ch;
s = "1234abc";
ch = 'A';
a = b = 0;
cin >> a >> c >> v >> s;
return 0;
}
这里可以看出其实声明变量就是在变量类型后面加上变量名称 ,可以一次声明多个变量,中间用逗号隔开;也可以一边声明一边赋值,其中字符串要用双引号括上,字符要用单引号;变量声明可以在主函数内也可以在主函数外(这个我会在讲自定义函数的时候具体讲解);赋值也可以用cin
重要的是要根据数据的类型选定变量类型 不然会存入一个很奇怪的数!
内存
一般我们做题目的时候都会看到有内存限制(如128MB,258MB等),这个就是我们在声明变量时最多可以使用的空间
1 byte (B 字节) = 8 bits (b 比特位,0或1)
1 KB = 1024 (2^10) byte
1MB = 1024 KB
1GB = 1024 MB
1TB = 1024 GB
这个也不需要怎么记,比赛的时候内存溢出情况还是很少的(我一般都是开小了然后CE什么的)
结语
其实关于变量声明的东西还是很简单的,重点在于搞清楚每一种变量类型所对应的单词(其实这个还是基本框架难记)
变量名称是可以随便取的,但最好还是起一些有象征意义的防止变量定义多了搞混
学习编程最重要的还是要自己把代码打一遍,不然很容易眼睛会了脑子不会!