1.内存如何存放数据
我们通过指令操纵计算机,重要的是操作计算机的内存。
计算机的内存单位是bit,数据以位为单位存储在计算机中。
2.变量
(1)变量的引入:
数据是存储在内存中的,比如在地址501处存储数字1,在地址502处存储数字2。但是由于501,502是数字,如果存储的内容很多时,我们不能看到501就知道他里面存储的是数字1,即不能见名知意,就不好进行数据的使用。所以引出变量,如定义变量number1里面存储1,number2里面存储2,这样如果想要使用数字1就直接使用变量名number1即可。
(2)定义
变量是计算机中一块特定的内存空间。
变量是一个数据存储空间的表示。
- 变量时内存空间由一个或多个连续的字节组成。
- 8比特(bit)=1字节(byte)
(3)变量的命名规则
- 变量名(标识符符)只能由字母、数字和下划线_3种字符组成
- 名称第一个字符必须为字母或下划线,不能是数字
- 变量名不能包含除_以外的任何特殊字符,如:%、#、逗号、空格等
- 不可以使用保留字(74个保留字),保留字即关键字,关键字有特殊的颜色
3.数据类型
(1)类型种类:
其他数据类型:
- size_t : 是无符号整型,利用 typedef 给无符号整型(unsigned int)重命名为size_t
- 枚举类型
- 指针类型
- 空类型
- 自定义类型
(2)类型数据范围:
- float: 6-7位有效数字
- double:15位有效数字
- char:
有符号signed char,取值范围-128-127
无符号unsigned char,取值范围0-255
char类型是否有符号取决千编译器 - String:字符串用来存储字符。
(3)补充:
- typedef使用:typedef 类型名 自定义名字
- define使用: #define 常量名 数字
- 输出最大值:
cout<INT_MAX<<endl;
- 头文件
#include <climits>
定义了很多常量
4.小知识点
- c++中默认输出是cout<<,但是也可以使用printf,需要引用头文件:
#include<cstdio>
- pow(x,2)=x^2;
- c++,数学库函数
#include <cmath>
- 控制cout输出形式
默认情况下,ocut会以科学计数法输出内容
#include <iostream>
using namespace std;
int main()
{
double doubleNumber=100.0/3;
cout<<doubleNumber*1000000<<endl;
return 0;
}
输出:
3.33333e+007
cout<<fixed;会强制以小数点输出数据:
#include <iostream>
using namespace std;
int main()
{
cout<<fixed;
double doubleNumber=100.0/3;
cout<<doubleNumber*1000000<<endl;
return 0;
}
输出:
33333333.333333
- 控制cout输出精度
#include <iomanip>
cout<<setprecision(2);
通过setprecision设置输出的小数点后的位数。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout<<fixed;
cout<<setprecision(2);
double doubleNumber=100.0/3;
cout<<doubleNumber*1000000<<endl;
return 0;
}
输出
33333333.33
- 设置数据输出宽度 setw(n)
n代表想要输出的位数:
eg:想要输出为15位
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout<<fixed;
cout<<setprecision(2);
double doubleNumber=100.0/3;
cout<<doubleNumber*1000000<<endl;
cout<<setw(15)<<doubleNumber*1000000<<endl;
return 0;
}
输出:
33333333.33
33333333.33
- setw()的使用
头文件是:iomanip,
setw()可以格式化输出代码,setw(n) 是输出占n位。
默认是右对齐,cout<<left
可以修改为左对齐,cout<<setfill('*')
可以设置填充字符。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double attack1 = 232;
double attack2 =342;
double attack3 =453;
cout<<left;
cout<<setfill('*');
cout<<setw(8)<<attack1
<<setw(8)<<attack2
<<setw(8)<<attack3<<endl;
return 0;
}
输出:
232*****342*****453*****