目录
Hello~上次我们学习了第一个程序,现在我们要学基本数据类型。
上次代码
#include <iostream>
using namespace std;
int main() {
cout << "Hello" << endl;
return 0;
}
3.1.认识数据类型
数据类型,就是数据的类型。(纯属废话)
我们来看一下一共有多少个数据类型:
名称 | 大小上限 | 位数 | 类型 | 备注 | |
1 | short(短整型) | -32768~32767 | 2 | 整形 | 取值很短,不常用 |
2 | int(整形) | -2147483646~2147483647 | 4 | 整形 | 最常用的整形 |
3 | long(长整型) | -2147483646~2147483647 | 4 | 整形 | 跟int一样 |
4 | long long(超长整形) | -9223372036854775808~9223372036854775807 | 8 | 整形 | 取值很长,不常用 |
5 | unsigned short(无符号短整型) | 0~65535 | 2 | 整形 | 取值很短,不常用 |
6 | unsigned int(无符号整型) | 0~4294967295 | 4 | 整形 | 最常用的无符号整形 |
7 | unsigned long(无符号长整形) | 0~4294967295 | 4 | 整形 | 跟int一样 |
8 | unsigned long long(无符号超长整形) | 0~18446744073709551615 | 8 | 整形 | 取值很长,不常用 |
9 | float(单精度浮点) | 0x1.0000000000000p-126~0x1.fffffe0000000p+127 | 4 | 浮点 | 精度太低,不常用 |
10 | double(双精度浮点) | 0x1.0000000000000p-1022~0x1.fffffffffffffp+1023 | 8 | 浮点 | 最常用的浮点 |
11 | long double(超长双精度浮点) | 0x1.0000000000000p-1022~0x1.fffffffffffffp+1023 | 8 | 浮点 | 精度太高,不常用 |
12 | char(字符) | -128~127(跟随系统) | 1 | 字符 | |
13 | unsigned char(无符号字符) | (不等,跟随系统) | 1 | 字符 | 不常用 |
14 | signed char(有符号字符) | -128~127(跟随系统) | 1 | 字符 | 不常用 |
15 | bool(布尔类型) | false,true(0和1) | 1 | 布尔 |
好的,无符号的意思是说它不能存储负数,然后把存储的取值增加到原来的两倍大小,一般用来存储人口,个数等
这也很合理,你见过人口是负数的国家吗?
还有人会问了,那些0x.............+/-........是什么,他们叫科学计数法,不知道科学计数法的
查查百度
3.1.1 变量
变量是什么?
变量是指在程序运行过程中,其值可以改变的量。
————《信息学奥赛 课课通(C++) 林厚从著》
创建一个变量很简单,语法是:
<数据类型> <变量名称>
比如我要新建一个int的dog变量:
int dog;
还有一个long long的cat的变量:
long long cat;
如果你想用一个类型新建多个变量,语法是:
<数据类型> <变量名称1>,<变量名称2>,<变量名称3>.......,<变量名称n>;
比如我要新建为short的year,month和day变量:
short year,month,day;
变量命名是有规则的,参见:
(1)变量名
程序中的常量名,变量名,函数名都称之为“标识符”。C++中的标识符命名规则如下:
1)标识符不能和系统中的关键字重名。
2)标识符只能包括字母、数字和下划线“_”,并且开头只能是字母或下划线。
3)标识符必须先定义,后使用。
4)在同一作用域内,标识符不能重复定义。
5)标识符是区分大小写的,如A和a、sum和Sum都是不同的标识符。
6)标识符要尽量做到“见名知义”,增强程序的可读性。
————《信息学奥赛 课课通(C++) 林厚从著》
- 小贴士:前面加_并第一个字母是大写,如_Cat,会留给实现(定义数据和操作的类成员),前面加两个_,如__stdcall(以后学窗体会讲到),叫全局标识符。
3.1.2 常量
常量是什么?
常量是指在程序运行过程中,其值保持不变的量。
————《信息学奥赛 课课通(C++) 林厚从著》
创建一个常量也不难,语法是:
const <数据类型> <变量名称>
或
<数据类型> const <变量名称>
例如我要新建一个为earth的int变量,值为6371:
const int earth = 6371; //第一种
int const earth = 6371; //第二种
我个人喜欢第一种,我们看一个反面教材:
const int earth;
earth = 6371; //不对的
如果在声明常量是没初始化,那变量的只是不确定的,无法修改。
还有一种常量,它是这样声明的:
#define earth 6371;
他叫宏常量,使用预处理器中的#define指令,类似于全局查找并替换。我们不说这种。
3.2.赋值语句
好,看一个程序:
#include <iostream>
using namespace std;
int main() {
int carrots = 16;
cout << "I have " << carrots << "carrots." << endl;
carrots = carrots - 2;
cout << "I eat 2 carrots,now I have " << carrots << " carrots.";
return 0;
}
程序的意思是新建一个carrots的int变量,把他初始化为16,然后这只(兔子?)吃了两个,剩下了14个。
我们看=是什么,小学上过吧,算式学过吧,但是人的算术和一堆CPU,显卡,硬盘......构成的废铁电脑的算术可不一样,人是:
4+7=11(只)
答:有11只mmp飞过。
废铁电脑是:
mmp = 4 + 7;
cout << "有" << mmp << "只mmp飞过。";
这叫赋值语句,格式是:
<变量> = <常量>
比如要把year设为2023:
year = 2023;
或者把tmp赋给mmp:
mmp = tmp;
你甚至可以这样玩:
a = b = c = d = e = f = 666;
由于赋值运算符的结合性从右往左的,所以:
666赋给f,f赋给e,e赋给d,d赋给c,c赋给b,b 赋给a。
————《智慧编译器》
在初始化时就可以赋值:
int year = 2023;
int month = 5;
还有n多种赋值方法:
int year = 2021;
int year = {2021};
int year{2021};
//...
今天先到这里吧,拜~
允许转载,请注明出处