1.C++概述
C++是一门很强大很难学的计算机编程语言。
2.运行环境
Visual Studio 2020
3.基础知识
3.1 注释
//在C++中双斜杠//表示单行注释
/*
/*...*/表示多行注释内容
*/
3.2 第一个程序
#include<iostream>
//in,out,stream 输入输出流,即表示引入输入输出流库
using namespace std;
//using表示利用,namespace表示命名空间,std表示标准,C++语言每行结束需要加分号;cout属于std
//可以不用写using namespace std;直接在代码中写std::cout
int main(){
//main()函数为程序的入门(程序从这开始执行)
cout << "Hellow World!" << endl;
//打印"Hellow World!"语句,cout为输出函数
return 0;
//程序运行结束后返回0,可省略改行代码,
//C++文件运行启动一个进程,返回码为0,若return -1,则返回码为-1
}
3.3 常量
#include<iostream>
using namespace std;
#define X "Hellow World!"
#define Y "Autumn"
//打印X,Y时会将后面的语句进行替换打印
#define Z 1+2
#define Q (1+2)
//意义不同,代入表达式的优先级运算不同
const int b = 1;
//变量b变为常量,不可被修改
int main(){
cout << endl;
//endl表示空行,会打印空行
cout << X << Y << endl;
//X,Y不换行打印
//输出Hellow World!Autumn
cout << X << endl << Y << endl;
//X,Y之间换行打印
cout << Z * Z;
//1+2 * 1+2 = 5
cout << Q * Q'
//(1+2)*(1+2) = 9
return 0;
}
3.4 变量
1.C++语言中变量大小写敏感
2.C++保留的关键字无法用做变量名
3.变量命名规则
a.只能由数字,字母,下划线组成,且数字不放开头
b.字母区分大小写
#include<iostream>
using namespace std;
int main(){
//变量的定义(数据类型 变量名 = 初始值;)
int i = 1;
int x = 0 + 2;
//变量的打印准则
cout << "i = " << i << endl;
cout << "x = " << x << endl;
//打印 i = 1
// x = 2
//未初始化变量打印会报错
//整形变量
/*
整形变量 字节数(一个字节等于八位) 表示范围
short 2 2^16(-2^15——2^15-1)
int 4 2^32(-2^31——2^31-1)
long 4 2^32(-2^31——2^31-1)
long long 8 2^64(-2^63——2^63-1)
*/
//sizeof关键字获取变量位数
short x = 1;
int y = 2;
cout << sizeof(short) << endl;
cout << sizeof(x) << endl;
//12
cout << sizeof(int) << endl;
cout << sizeof(y) << endl;
//24
cout << sizeof(long) << endl;
cout << sizeof(long long) << endl;
//48
//浮点数(小数)
/*
float 4字节
double 8字节
*/
float x = 3.1415926f;
//通常在后面加上f表示浮点数
double y1 = 3.1415926;
double y2 = 1.5e5;
//1.5e5表示e后乘上10^5
double y3 = 1.5e-5;
//1.5e-5为10的-5次方
cout << setprecision(7) << x << endl;
//setprocision()表示操控精度,7表示全部位数
double y4 = 1.0 / 2789347 * 2789347;
//f5 = 0.99999999998987
//double fabs(double x) 返回浮点数 x 的绝对值。
/*fabs()用于计算一个数的绝对值。这个函数在处理数学运算时非常有用,可以确保获得数值的非负表示。*/
if (fabs(y4 - 1) < 0.00000001){
cout << "y4的精度小于0.00000001" << endl;
}
//比较浮点数的绝对值,以确定其是否在某个误差范围内与目标值相等。
//字符型
char c = 'a';
//char c = "a";不能用双引号,双引号用于字符串。
cout << c << endl;
cout << sizeof(c) << endl;
//a1
//强转字符
char a = 'a';
char b = 'b';
cout << (int)a << endl;
cout << (int)b << endl;
cout << b-a << endl;
//字符在内存中存储为数字,a == 97,b == 98,b - a == 1
//字符串型
//char 变量名[] = "字符串常量";
char c6[] = "英雄算法联盟";
cout << sizeof(c6) << endl;
//每个字两个字节,加上结尾存在一个\0,一个13个字节
//第二种字符串表示方法
//string,先导入string库
string c7 = "夜深人静写算法";
cout << c7 << endl;
//布尔类型(真和假)
bool flag1 = true; //真
bool flag2 = false;//假
cout << flag1 << flag2 << endl;
//输出0,1
cout << sizeof(bool) << endl;
//取反操作
flag1 = !flag1;
cout << flag1 << endl;
//转义字符
char c1 = '\a';
cout << (int)c1 << endl;
char c2 = '\n';
cout << (int)c2 << endl;
cout << "c2为换行语句" << c2;
//\n为换行,\t为制表符(空格),\\表示\,\0为忽略后面的字符,\077则表示八进制数,\"表示"
//数据的输入和输出
//1.整形的输入
int i1 = 5;
cin >> i1;
cout << "i1的值变为了" << i1 << endl;
//2.浮点型的输入
double d1 = 3.1;
cin >> d1;
cout << "d1的值变为了" << d1 << endl;
//3.字符型的输入
char ch1 = 'a';
cin >> ch1;
cout << "ch1的值变为了" << ch1 << endl;
//4.字符串型
string st = "abc";
cin >> st;
cout << "st的值变为了" << st << endl;
//5.布尔型
bool bo = true;
cin >> bo;
cout << "bo的布尔值变为了" << bo << endl;
//算书运算符号
int i3 = 1;
int i4 = 2;
cout << i3 + i4 << endl;
cout << i3 - i4 << endl;
cout << i3 * i4 << endl;
cout << i3 / i4 << endl;
//两整数相除为整除,
cout << i3 * 1.0 / i4 << endl;
//浮点数相运算会出现小数
//越界
int i5 = 10000000;
int i6 = 100000;
cout << i5 * i6 << endl;//i5 * i6的结果会越界
//解决办法
cout << (long long)i5 * i6 << endl;//强转类型
int i7 = -1;
int i8 = 2;
cout << i7 / i8 << endl;//结果为0,会截断小数点部分
int i9 = -1;
int i10 = -i9;
cout << i9 << " " << i10 << endl;//-符号化为取反,无--符号,可以-(-a)
return 0;
}
3.5 数据的输入输出及运算符
#include<iostream>
using namespace std;
int main(){
//数据的输入和输出
//1.整形的输入
int i1 = 5;
cin >> i1;
cout << "i1的值变为了" << i1 << endl;
//2.浮点型的输入
double d1 = 3.1;
cin >> d1;
cout << "d1的值变为了" << d1 << endl;
//3.字符型的输入
char ch1 = 'a';
cin >> ch1;
cout << "ch1的值变为了" << ch1 << endl;
//4.字符串型
string st = "abc";
cin >> st;
cout << "st的值变为了" << st << endl;
//5.布尔型
bool bo = true;
cin >> bo;
cout << "bo的布尔值变为了" << bo << endl;
//算书运算符号
int i3 = 1;
int i4 = 2;
cout << i3 + i4 << endl;
cout << i3 - i4 << endl;
cout << i3 * i4 << endl;
cout << i3 / i4 << endl;
//两整数相除为整除,
cout << i3 * 1.0 / i4 << endl;
//浮点数相运算会出现小数
//越界
int i5 = 10000000;
int i6 = 100000;
cout << i5 * i6 << endl;//i5 * i6的结果会越界
//解决办法
cout << (long long)i5 * i6 << endl;//强转类型
int i7 = -1;
int i8 = 2;
cout << i7 / i8 << endl;//结果为0,会截断小数点部分
int i9 = -1;
int i10 = -i9;
cout << i9 << " " << i10 << endl;//-符号化为取反,无--符号,可以-(-a)
//字符运算
char a1 = 'A';
a1 = a1 + 1;
cout << a1 << endl;//a1变为B
//取模运算符%用于两个整数之间,为整除之后的余数
int integer1 = 100;
int integer2 = 9;
cout << integer1 % integer2 << endl;
//1
int integer1 = -100;
int integer2 = 9;
cout << integer1 % integer2 << endl;//-1
//总结:取模符号和被除数相关(integer1)
//递增运算符++,递减运算符--
int integer3 = 1;
integer3++;//先其他运算再加
++integer3;//先加再其他运算
cout << integer3 << endl;
integer3--;//先其他运算再减
--integer3;//先减再其他运算
cout << integer3 << endl;
int integer4 = 1;
int integer5 = (integer4++) + (++integer4);//1 + 3 = 4
//赋值运算符 =
integer3 = integer3 + integer5;
integer3 += integer5;
// x += y // x -= y // x *= y // x /= y // x %= y
//比较运算符,输出的是布尔值0/1
== 等于
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
cout << (a == b) << endl;//需要加括号