C++学习笔记(一)指针之前

跟着网课比较系统地学一下

【【2023最新版C++】实战项目教程,清华武老师带你零基础一套快速学会c++】 https://www.bilibili.com/video/BV1eL41187JS/?share_source=copy_web&vd_source=6ecc92141938badce449ff0f5edde584


1.代码运行及标准

编译型语言:编译器将整个源代码翻译为机器码,生成二进制文件,一次性提交给计算机执行:C++、C

解释型语言:解释器将代码逐行解释为机器码提交给计算机:Python、JavaScript

代码运行:

2.常量

(1)使用符号变量

#define ZERO 0        //一般大写

宏定义,“#”开头的都是预处理语句,在编译之前预处理器会查找程序中的所有“ZERO”并替换为0

(2)const限定符

const int Zero = 0;        //首字母大写的形式

必须赋值初始化,有详细的数据类型,而且会在编译阶段安全检查,运行时才完成替换

3.基本数据类型

告知计算机数据占了多大空间

(1)整型integral type

基本整型包括:char、short、int、long、long long、bool

可以灵活定义长度,实现跨不同计算机平台

 (2)无符号整型integral type

定义时在类型前加unsigned

(3)char类型

表示字符

对字符类型的扩容:宽字符类型wchar_t,为Unicode字符集提供了专门的扩展类型char16_t长16位,char32_t长32位

(4)布尔类型

true:1 false:0

(5)浮点类型

单精度float(通常4字节)

双精度double(通常8字节)

扩展高精度类型long double(12或16字节)

可用E表示法表示浮点数,eg:10e-4

(6)字面值常量
整型字面值、浮点字面值

0x开头十六进制 0开头八进制

默认为int类型,超出选择能够表示的最小长度的那个类型,可加后缀进行表示

9527uLL ;表示unsigned long long

3.14L;        表示long double

字符字面值

单引号 ‘’ 字符字面值

双引号 " " 字符串字面值

特殊的,转义用“\”加字符," \" "

布尔字面值

true false

(7)类型转换

 赋值时自动转换

4.复合数据类型 

(1)数组
定义

类型 数组名[元素个数]  ,[]中需要为常量或具体数字

初始化

正确的表达:

int a[4];

int a[]={1,2,3,4};

int a[4]={1,2,3};//剩余用0填充

注意:不能用数组对数组进行赋值,vs中未初始化的数组用0xCC填充所有字节

访问和遍历
(2)模板类vector
使用前的准备

数组的上层抽象,不固定长度,更安全,运行数据较低

需要包含头文件并使用std命名空间

#include<vector>

using namespace std;

基本用法

//初始化

vector<int> v;//定义容器v,进行了默认初始化

vector<char>v = {'a','b',c''};或vector<char>v {'a','b',c''};//列表初始化,拷贝初始化

vector<short>v(5,100);//直接初始化,5个short类型元素都初始化为100

//访问元素

v[3];

v[3]=...;

当下标超出定义,将会报错(相较于数组增加了安全检查)

v.size()可获得v所包含的元素个数

//遍历

for(;;)

for (int num : v);

//添加元素(相较于数组不能加长)

v.push_back(5);//在原数据之后添加了5

(3)字符串

#include<string>

using namespace std;

初始化:

//默认初始化

string s1;

//拷贝初始化

string s2=s1;

string s3="hello";

//直接初始化

string s4("hello");

string s5(8,"h");//hhhhhhhh

访问字符

s4[2];// l

s4[s4.size()]//访问s4的最后一个字符

字符串相加(拼接)

注意:两个“” “”不可以直接相加,但可以对str1和str2拼接,也可以str1与“拼接”

(4)字符数组(C语言风格)

字符数组最后一个字符为空字符'\0'时,该字符数组才为一个字符串。字符串长度包括空字符

(5)读取输入字符串

1)输入操作符读取单词

cin >> str;//读取至str,空格或回车结束

2)getline读取一行信息

getline(cin,str3);//无回车

3)get读取一个字符

char ch;

ch = cin.get();

(6)简单读写文件

IO库提供用于文件输入的ifstream类和用于文件输出的ofstream类,需要引入头文件fstream

输入对象定义

ifstream input("路径名称");

输出对象定义

ofstream output("路径名称")

将cout改为output<<...<<endl;

(7)结构体

访问结构体内数据 “.”

(8)枚举

某个数据对象只能取有限个常量值的情况,提供一种批量创建符号常量的方式,即枚举类型enum

//定义枚举类型
enum week
{
    Mon,Tue,...
};

默认情况下将整数值赋给枚举量,默认从0开始依次加1,也可以另外显式赋值,其后的值依次加1

调用week(下标)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值