C++的基础知识~

持续更新中…


日期:2022.7.5

1前言

本人是23届考研考生,考研要求C/C++版数据结构,但是本科期间没有学习过C++,以此记录自学C++过程。本科学大数据,学过Java、Python、R、HTML、Spark等编程语言,具有一定的编程基础,因此本文只记录了学习C++过程中接触的新知识以及学习笔记。


2使用的编译器

使用Visual Studio 2019 Community版。

3C++初识

实现第一个C++程序“Hello C++”

创建文件:

  1. 创建新项目,选择空项目
  2. 右击源文件,添加,新建项

C++程序必要的6行代码

代码要求与Java一致:要求每句以分号结束。

#include<iostream>
using namespace std;

/* main函数是程序的入口
每个程序有且仅有一个main函数*/
int main(){
	cout << "Hello C++!" << endl;
	system("pause");
	return 0;
}

注意:endl(“l”是小写字母,不是数字1)

变量

创建与python一致

数据类型 变量名=变量初始值

int a=10;

日期:2022.7.8

常量

常量一经设置,不可以修改。

  1. #define 宏常量:

#define 常量名 常量值

(一般写在文件上方)不需要分号!!!

#include <iostream>
using namespace std;

//宏常量 定义在文件上方
#define day 7 //不需要分号!!

int main(){
	cout << "一周有" << day << "天" << endl;
	system("pause");
	return 0;
}
  1. const修饰的变量:

const 数据类型 常量=常量值

#include <iostream>
using namespace std;

int main(){
	//const修饰的变量
	const int month = 12;
	cout << "一年有" << month << "个月" << endl;
	
	system("pause");
	return 0;
}

关键字、标识符

关键字

与其他编程语言一致:不能用关键字命名

C++里的关键字具体可以看下面这篇文章

C++的关键字

标识符的命名规则

  • 不可以是关键字
  • 字母、数字、下划线组成
  • 第一个字符必须是字母或者下划线,不能数字
  • 字母区分大小写

给变量起名时,最好可以见名之意~(可以代表变量的意义)

	int num1 = 5;
	int num2 = 10;
	int sum = num1 + num2;
	cout << sum << endl;

日期:2022.7.10

4数据类型

整型

必须指定数据类型,达到给变量分配合适的内存空间,不然无法分配内存

short < int <= long <= long long

整型占用空间取值范围
短整型short2字节-215~215-1
整型int4字节-231~231-1
长整型longwindows:4字节,linux:4字节(32位),8字节(64位)-231~231-1
长长整型 long long8字节-263~263-1

sizeof关键字

	//sizeof(数据类型 或者变量)
	short num1 = 10;
	cout << "short占用的内存空间为" << sizeof(short) << endl;
	cout << "short占用的内存空间为" << sizeof(num1) << endl;

实型(浮点型)

  1. 单精度float
  2. 双精度double

默认情况下,输出一个小数,会显示6位有效数字

类型占用空间有效数字范围
float4字节7位
double8字节15~16位
   	//单精度,占4四节
	float f1 = 3.14f;
	cout << "f1=" << f1 << endl;
	cout << "float占用的内存空间为" << sizeof(f1) << endl;
	//双精度,占8字节
	double d1 = 3.14;
	cout << "double占用的内存空间为" << sizeof(d1) << endl;
	//科学计数法
	float f2 = 3e2;//3*10^2
	float f3 = 3e-2;//3*0.1^2
	cout << "f2=" << f2 << endl;
	cout << "f3=" << f3 << endl;

字符型

char 变量名 = ‘字符’;

  • 单引号引住 ,不能双引号
  • 只能有一个字符
  • C、C++中字符型变量中只占用1个字节
  • 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元
	//字符型
	char ch = 'a';
	cout << ch << endl;
	cout << "char占用的内存空间为" << sizeof(char) << endl;
	
	//字符型变量对应的ASCII编码
	                              //强转为int
	cout << "a对应的ASCII编码为" << (int)ch << endl;

记住: a–97 ; A–65

转义字符

现阶段常用的转义字符:

  • \n — 换行(LF)—010
  • \t — 水平制表(HT)(跳到下一个TAB位置)—009
  • \ — 代表一个反斜线–092
	//转义字符
	//换行符\n
	cout << "hello c++ \n" ;
	//反斜线\\
	cout << "\\" << endl;
	cout << "\\\n" ;
	//水平制表符\t
	cout << "aaa\thello c++" << endl;
	//aaa后多出的空格有多长,取决于aaa所占的字符;\t总共占8个位置;
	//aaa占3个字符==>空格就占5个字符
	//aaaaa占5个字符==>空格就占3个字符

	//可以整齐的输出 \t 后面的内容
	cout << "aaa\thello c++" << endl;
	cout << "a\thello c++" << endl;
	cout << "aaaaa\thello c++" << endl;

字符串型

表示一串字符

C风格字符串

char 变量名[] = “字符串值”

	//C风格字符串
	   //必须是中括号;用双引号引内容
	char str[] = "hello c++";
	cout << str << endl;
  • 双引号引住
  • 里面是字符串

C++风格字符串

string 变量名 = “字符串值”

	//C++风格字符串
	//如果报错,可以在首行添加一个头文件 #include <string>
	//vs2019之后不需要加string头文件
	string str2 = "hello c++";
	cout << str2 << endl;

布尔类型

占1个字节大小

true(1);false(0)

	//布尔类型
	bool flag = true; //输出是1
	cout << flag << endl;
	flag = false;
	cout << flag << endl;//输出是0

	cout << "bool所占的内存空间是" << sizeof(bool) << endl;

数据的输入

从键盘上获取数据

cin >> 变量

	//变量输入

	//整型
	int a = 0;
	cout << "请给整型变量a进行赋值:" << endl;
	cin >> a;
	cout << "a=" << a << endl;

	//浮点型
	float f =3.14f;
	cout << "请给浮点型变量f进行赋值:" << endl;
	cin >> f;
	cout << "f=" << f << endl;

	//字符型
	char ch = 'a';
	cout << "请给字符型变量ch进行赋值:" << endl;
	cin >>ch;
	cout << "ch=" << ch << endl;

	//字符串
	string str = "hello";
	cout << "请给字符串型变量str进行赋值:" << endl;
	cin >> str;
	cout << "str=" << str << endl;

	//布尔类型
	bool flag = true; 
	cout << "请给布尔型变量flag进行赋值:" << endl;
	cin >> flag; //输入数字,只要是非0的值都代表的是 真true
	cout << "flag1=" << flag << endl;

2022.7.11

5运算符

算术运算符

  • 加减乘除 (±*/)

注意除法(/):两个整数相除,结果仍是整数(取整);
除数不可以是0

#include<iostream>
using namespace std;
int main() {
	int a = 10;
	int b = 20;
	cout << a / b << endl; //输出是0
	system("pause");
	return 0;
}

两个小数可以相除,运算结果可以是小数

	double d1 = 0.5;
	double d2 = 0.22;
	cout << d1 / d2 << endl;//输出是2.27273

  • 取余(%)

本质是取余数;
两个数相除,除数不可以是0,也无法做取余运算;
两个小数之间不可以做取余运算(只有整型可以取余)

	int a1 = 10;
	int b1 = 3;
	cout << a1 % b1 << endl;//输出是1

	int a2 = 10;
	int b2 = 20;
	cout << a2 % b2 << endl;//输出是10
  • 递增递减(++/- -)

前置递增递减
先让变量加减1,然后进行表达式运算

后置递增递减
先进行表达式运算,再让变量加减1

口诀:加在前,先加;加在后,后加

   	//前置
	int a2 = 10;
	int b2 = ++a2 * 10;
	cout << "a2=" << a2 << endl; //a2=11
	cout << "b2=" << b2 << endl; //b2=110
	//后置
	int a3 = 10;
	int b3 = a3++ * 10;
	cout << "a3=" << a3 << endl; //a3=11
	cout << "b3=" << b3 << endl; //b3=100

赋值运算符

(±*/%)=

	//+=
	a = 10;
	a += 2; //a=a+2;
	cout << "a=" << a << endl; //a=12
	//-=
	a = 10;
	a -= 2; //a=a-2
	cout << "a=" << a << endl; //b=8
	//%=
	a = 10;
	a %= 2; //a=a%2
	cout << "a=" << a << endl; //a=0

比较运算符

  • ==
  • !=
  • >
  • <
  • >=
  • <=

返回的是 真假(0或1)

逻辑运算符

  • 非( ! )—取反操作
  • 与(&&)—a&&b (条件全为真,结果才是真)
  • 或( || )—a||b (a或者b是真,就是真)
	// !与
	int a = 10;// 在C++中,非0都是真
	cout << !a << endl;//输出是0
	cout << !!a << endl;//输出是1

	//&&和
	// “同真为真,其余为假”
	int b = 10;
	cout << (a && b) << endl;//输出是1

	int c = 0;
	cout << (c && b) << endl;//输出是0

	int d = 0;
	cout << (c && d) << endl;//输出是0
	// ||或
	// “同假为假,其余为真”
	int a = 10;
	int b = 10;
	cout << (a || b) << endl;//结果是1

	int c = 0;
	cout << (a || c) << endl;//结果是1

	int d = 0;
	cout << (c || d) << endl;//结果是0

2022.7.12

6程序流程结构

  • 顺序结构
  • 选择结构
  • 循环结构

顺序结构

平常我们写的代码都是顺序结构的,不发生跳转

选择结构

if语句

  • 单行if

if(条件){条件满足执行的语句}

条件后不需要加分号!!!否则后面都会执行

  • 多行if

if(条件){条件满足执行的语句}else{条件不满足执行的语句}

  • 多条件

if(条件1){条件1满足执行的语句}else if(条件2){条件2满足执行的语句}…else{不满足执行的语句}

#include<iostream>
using namespace std;
int main() {
	int a = 0;
	int b = 0;
	cout << "请给a赋值" << endl;
	cin >> a;
	cout << "请给b赋值" << endl;
	cin >> b;
	cout << "两个数中较大的数是";
	if (a > b) {
		cout << a << endl;
	}
	else if (a == b) {
		cout << "两个数相等,且为" << a << endl;
	}
	else {
		cout << b << endl;
	}

	system("pause");
	return 0;
}
  • 嵌套if
#include<iostream>
using namespace std;
int main() {
	int a = 0;
	int b = 0;
	cout << "请给a赋值" << endl;
	cin >> a;
	cout << "请给b赋值" << endl;
	cin >> b;
	if (a > b) {
		if (a % 2 == 0) {
			cout << "a是大于b的偶数,且a为" << a;
		}
		else if (a % 2 == 1) {
			cout << "a是大于b的奇数,且a为" << a;
		}
	}
	else if (a == b) {
		if (a % 2 == 0) {
			cout << "a与b相等,且为偶数" << a;
		}
		if (a % 2 == 1) {
			cout << "a与b相等,且为奇数" << a;
		}
	}
	else {
		if (b % 2 == 0) {
			cout << "b是大于a的偶数,且b为" << b;
		}
		else if (b % 2 == 1) {
			cout << "b是大于a的奇数,且b为" << b;
		}
	}

	system("pause");
	return 0;
}

2022.7.19

三目运算符

实现简单的判断

表达式1 ?表达式2 :表达式3
如果表达式1的值为真,执行表达式2,并返回表达式2的结果;
否则执行表达式3,并返回表达式3的结果

#include<iostream>
using namespace std;

int main() {

	int a = 15;
	int b = 20;
	int c = 0;
	//a和b比较,将大的赋值给c
	c = ( a > b ? a : b );
	cout << "c=" << c << endl;
	system("pause");
	return 0; 
}

在C++中 三目运算符返回的是变量,可以继续赋值

( a > b ? a : b )=100

	(a > b ? a : b) = 100;
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;

选择结构

switch语句

持续更新中…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@这个编程我不会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值