一、c++基础入门
1、初识c++
1.1 一个c++程序
#include<iostream>
using namespace std;
int main()
{
system("pause");
return 0;
}
这些代码是固定格式
- 书写helloworld
#include<iostream>
using namespace std;
int main()
{
cout << "hello world" << endl;
system("pause");
return 0;
}
执行结果:
1.2 注释
单行://
多行:/* */
整体注释:ctrl+k+c同时按
整体取消注释:ctrl+k+u
1.3 变量
语法:
变量类型 变量名 = 初始值;
1.4 常量
定义方式:
-
#define 宏常量
- 通常在文件上方定义,表示一个常量
-
const修饰的变量
- 通常在变量定义前加关键字const,修饰变量为常量,不可修改
举例:
#include<iostream> using namespace std; /* 常量定义方式: 1.#define定义宏常量 2.const修饰的变量 */ #define Day 7//宏常量 int main() { //Day = 14;//Day是常量,一旦修改就会报错 cout << "一周总共有:" << Day << "天" << endl; const int month = 12; //month = 24;//const 修饰的变量也是常量不可修改 cout << "一年总共有:" << month << "个月份" << endl; system("pause"); return 0; }
踩坑:一个程序只能有一个main方法
实际上是一个程序不能有重名的方法,所以改个名字就行了
1.5 关键字
1.6标识符命名规则
- 标识符不能是关键字
- 标识符只能由字母数字下划线组成
- 第一个字符必须是字母或者下划线
- 标识符中字母区分大小写
2.数据类型
2.1 sizeof关键字
用于统计数据类型所占的内存大小(返回几个字节)
语法:sizeof(数据类型/变量)
代码举例:
#include<iostream>
using namespace std;
int main() {
short num1 = 10;
cout << "short占用的内存空间为:" << sizeof(num1) << endl;
cout << "int占用的内存空间为:" << sizeof(int) << endl;
cout << "long占用的内存空间为:" << sizeof(long) << endl;
cout << "long long占用的内存空间为:" << sizeof(long long) << endl;
//整型大小比较
//short<int<=long<=long long
system("pause");
return 0;
}
输出:
short占用的内存空间为:2
int占用的内存空间为:4
long占用的内存空间为:4
long long占用的内存空间为:8
2.2 浮点型
一般会在定义float类型的数的时候后面会加f,否则会被默认为double然后当用一个float类型去接收的这个数的时候中间多了一步转换的过程
- 科学计数法
#include<iostream>
using namespace std;
int main(){
//科学计数法
float f2 = 3e2;//3 * 10^2
cout << "f2 = " << f2 << endl;
float f3 = 3e-2;//3 * 10^-2,可以看成3 * 0.1^2
cout << "f3 = " << f3 << endl;
system("pause");
return 0;
}
输出:
f2 = 300
f3 = 0.03
2.3 字符型
- 字符型变量在存储单元中存储的是他的ASCII码
#include<iostream>
using namespace std;
int main() {
//1.字符型变量创建方式
char ch = 'a';
cout << "ch = " << ch << endl;
//2.字符型变量所占内存大小
cout << "char所占字节为:" << sizeof(char) << endl;
//3.字符型变量常见错误
/*
1.不能用双引号创建字符型变量
2.不能在单引号里写多个字符
*/
//4.字符型变量对应的ASCII码 记住常用的a-97,A-65
cout << "ch对应的Ascll码值为:" << (int)ch << endl;//直接强制转换
system("pause");
return 0;
}
输出:
ch = a
char所占字节为:1
ch对应的Ascll码值为:97
- 常用ASCII码表
2.4 转义字符
现阶段常用:
\n:换行
\t:水平制表符(跳到下一个tab位置),这个主要作用是用来对齐后面内容的
#include<iostream>
using namespace std;
int main() {
//换行 \n
cout << "hello word\n" ;//这里这么写实际跟<<endl的效果是一样的
//反斜杠 \\
//cout<<"\"<<endl;这么写报错
cout << "\\" << endl;
//水平制表符 \t
cout << "aaa\tbbb" << endl;
system("pause");
return 0;
}
输出:
2.5 字符串类型
#include<iostream>
using namespace std;
int main() {
//1.c风格的字符串
//注意事项:加[],加单引号
char str[] = "hello world";
cout << str << endl;
//1.c++风格的字符串
string str1 = "hello world";
cout << str1 << endl;
system("pause");
return 0;
}
2.6 bool数据类型
- 布尔类型除了0代表假,其他都是真。
#include<iostream>
using namespace std;
int main() {
//创建bool类型
bool flag = true;
cout << flag << endl;//这里输出1
flag = false;
cout << flag << endl;//这里输出0
//本质上 1代表真 0代表假
cout << "bool类型占用字节为:" << sizeof(bool) << endl;
system("pause");
return 0;
}
输出:
1
0
bool类型占用字节为:1
2.7 数据的输入
关键字:cin
语法:cin>>变量
#include<iostream>
using namespace std;
#include<string>
int main() {
//1.整型
int a = 0;
cout << "请给整型变量a赋值:" << endl;
cin >> a;
cout << "整型变量a的值为:" << a << endl;
//2.浮点型
float f = 3.14f;
cout << "请给浮点型数据f赋值:" << endl;
cin >> f;
cout << "浮点数f = " << f << endl;
//3.字符型
char ch = 'a';
cout << "请给浮点型数据ch赋值:" << endl;
cin >> ch;
cout << "浮点数ch = " << ch << endl;
//4.字符串型
string str = "hello";
cout << "请给字符串型数据ch赋值:" << endl;
cin >> str;
cout << "字符串str = " << str << endl;
//5.布尔类型
bool flag = false;
cout << "请给布尔型数据flag赋值:" << endl;
cin >> flag;
cout << "布尔型flag = " << flag << endl;
system("pause");
return 0;
}
3.运算符
运算符类型 | 作用 |
---|---|
算数运算符 | 处理四则运算 |
赋值运算符 | 用于将表达式的值赋给变量 |
比较运算符 | 用于表达式的比较,并返回一个真值或假值 |
逻辑运算符 | 用于根据表达式的值返回真值或假值 |
3.1 算数运算符
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
+ | 正号 | +3 | 3 |
- | 负号 | -3 | -3 |
+ | 加 | 10+5 | 15 |
- | 减 | 10-5 | 5 |
* | 乘 | 10*5 | 50 |
/ | 除 | 10/5 | 2 |
% | 取余 | 10%3 | 1 |
++ | 前置递增 | a=2;b=++a; | a=3;b=3; |
++ | 后置递增 | a=2;b=a++; | a=3;b=2; |
– | 前置递减 | a=2;b=–a; | a=1;b=1; |
– | 后置递减 | a=2;b=a–; | a=1;b= |
注意:
-
被除数不能为0
-
除法操作的时候如果为int型会舍弃小数点
-
小数不能进行取余运算
-
- 前置递增 先让变量+1 然后进行表达式运算
- 后置递增 先进行表达式运算,后让变量+1
#include<iostream> using namespace std; int main() { //1.前置递增 int a = 10; ++a; cout << "a = " << a<<endl; //1.后置递增 int b = 10; b++; cout << "b = " << b << endl; //3.前置递增和后置递增的区别 //前置递增 先让变量+1 然后进行表达式运算 int a2 = 10; int b2 = ++a2 * 10; cout << "a2 = " << a2 << endl;//11 cout << "b2 = " << b2 << endl;//110 //后置递增 先进行表达式运算,后让变量+1 int a3 = 10; int b3 = a3++ * 10; cout << "a3 = " << a3 << endl;//11 cout << "b3 = " << b3 << endl;//100 system("pause"); return 0; } 输出: a = 11 b = 11 a2 = 11 b2 = 110 a3 = 11 b3 = 100
3.2 赋值运算符
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
= | 赋值 | a=2;b=3; | a=2;b=3 |
+= | 加等于 | a=2;b+=2; | a=2;b=4 |
-= | 减等于 | a=2;b-=2; | a=2;b=0; |
*= | 除等于 | a=2;b*=2; | a=2;b=1; |
/= | 乘等于 | a=6;b/=3; | a=6;b=2; |
%= | 模等于 | a=5;b%=2; | a=5;b=3 |
注意:
- +=,*=这种中间是不能有空格的
3.3 比较运算符
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
== | 相等于 | 4 ==3 | 0 |
!= | 不等于 | 4 != 3 | 1 |
< | 小于 | 4 < 3 | 0 |
> | 大于 | 4 > 3 | 1 |
<= | 小于等于 | 4 <= 3 | 0 |
>= | 大于等于 | 4 >= 3 | 1 |
注意:比较运算符包括后面的逻辑运算符注意加个(),不加会报错。
#include<iostream>
using namespace std;
int main() {
//比较运算符
//==
int a = 10;
int b = 20;
cout << (a == b) << endl;
//!=
cout << (a != b) << endl;
//>
cout << (a > b) << endl;
//<
cout << (a < b) << endl;
//>=
cout << (a >= b) << endl;
//<=
cout << (a <= b) << endl;
system("pause");
return 0;
}
3.4 逻辑运算符
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
! | 非 | !a | 取反 |
&& | 与 | a&&b | 同真为真,否则为假 |
|| | 或 | a||b | 同假才假,有真为真 |
4.程序流程结构
c++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构
- 顺序结构:程序按顺序执行,不发生跳转
- 选择结构:依据条件是否满足,有选择的执行相应的功能
- 循环结构:依据条件是否满足,循环多次执行某段代码
4.1选择结构
4.1.1 if语句
- 单行:
if(条件){条件满足执行语句}
#include<iostream>
using namespace std;
int main() {
//选择结构 单行if语句
//用户输入分数,如果分数大于600,视为考上一本大学,在屏幕上输出
int score = 0;
cout << "请输入一个分数:" << endl;
cin >> score;
cout << "您输入的分数为:"<<score << endl;
if (score >= 600)//这里不要加分号,如果加了分号那么不论条件是否满足,后面的代码都会执行
{
cout << "考上了一本大学" << endl;
}
system("pause");
return 0;
}
注意:if(条件)这里不要加分号如果加了分号那么不管条件是否满足后面的代码块都会执行如下
if(条件);//不论条件是否满足,后面代码都执行
{
代码
}
-
多行:
if(条件){条件满足执行语句}else{条件不满足执行语句}
-
多条件的if语句:
if(条件){条件1满足执行的语句}else if(条件2){条件2满足执行的语句}...else{都不满足执行的语句}