IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++学习笔记 -> 正文阅读

[C++知识库]C++学习笔记

C++学习笔记

《C++ Primer》个人阅读学习笔记,持续更新中…

1. 环境搭建

参考网址:

https://www.cnblogs.com/cpuimage/p/13121765.html

(1) 下载并安装msys2

https://www.msys2.org/ 

(2) 打开msys2控制台,输入以下命令进行环境安装

pacman -S mingw-w64-x86_64-gcc
pacman -S mingw-w64-x86_64-gdb
pacman -S mingw-w64-x86_64-cmake
pacman -S mingw-w64-x86_64-make
pacman -S mingw-w64-x86_64-pkg-config

(3) 下载并打开 CLion,进入setting中的Toolchains;点击 [+] 新建MinGW环境并配置,如下图

img

2. C++基础

(1) 相关术语

  • 形参:parameter,formal argument
  • 实参:argument, actual argument
  • 编译器:gcc(GUN Compiler Collection), 预处理、编译、汇编、链接
  • 编辑器:
  • 集成开发环境:IDE(Integrated Developed Environment)
  • 语句块:block,花括号包围的语句序列

(2) 向流写入数据

#include <iostream>

std::count << "Enter two numbers:" << std::endl;
std::cin >> v1 >> v2;	// 从std::cin中读入两个值,第一个存入v1,第二个存入v2
  • endl 操纵符(manipulator),结束当前行,并将缓冲区(buffer)中的内容刷到设备中;
  • std命名空间(namespace)
  • :: 作用域运算符
  • // 单行注释
  • /* * */ 注释界定符

(3) 以 istream 对象作为条件的循环

#include <iostream>
int main()	{
	int sum = 0, value = 0;
	while (std::cin >> value)
		sum += value;
	std::cout << "Sum is: " << std::endl;
	return 0;
}
  • 如果输入的流是有效的(在该代码中为 int 型参数),则检测成功,条件为 True
  • 如果输入的流是无效的(除int 型参数外其他类型参数),则检测失败,条件为 False ,跳出循环。

3. 变量和基本类型

(1) 算术类型

类型含义最小尺寸
bool布尔类型未定义
char字符8 位
wchar_t宽字符16 位
char16_tUnicode 字符16 位
char32_tUnicode 字符32 位
short短整型16 位
int整形16 位
long长整型32 位
long long长整型64 位
float单精度浮点数6 位有效数字
double双精度浮点数10 位有效数字
long double扩展精度浮点数10 位有效数字
  • 字节:8 比特
  • 字: 32 或 64 比特
  • float 一个字(32 比特)

(2) 类型转换

  • 把非布尔类型的算术值赋给布尔类型时,初始值为0则结果为false,否则结果为true;

  • 把浮点数赋给整数类型时,结果仅保留小数点前的部分;

  • 表达式中既有负数又有无符号数时,会出现异常结果

(3) 字面值常量

  • 0 开头的整数代表八进制,以 0x0X 开头的代表十六进制数,例如,可以用以下几种形式表示20:

    20 // 十进制 024 // 八进制 0x14 // 十六进制

  • 单引号括起来的一个字符成为 char 型字面值;双引号括起来的成为 字符串 型字面值,其结尾位为 '\0'

  • 一个字符串字面值可以被空格、缩进、换行符分隔

std::cout << "a really, really long string literal "
			 "that spans two lines" << std::endl;
  • 转义序列 escape sequence

    符号名称符号表示符号名称符号表示符号名称符号表示
    换行符\n横向制表符\t报警(响铃)符\a
    纵向制表符\v退格符\b双引号\"
    反斜线\\问号\?单引号\'
    回车符\r进纸符\f
  • \7 响铃 \12换行 \40空格 \0空字 \115字符M \x4d字符M (\后面为八进制或者十六进制)

(4) 变量

  • 初始化 创建变量是赋予一个初始值

  • 赋值 擦除对象当前值,并用一个新值替代之

  • 声明 (declaration) 使文件可以使用别处定义的名字,变量可以被多次声明

  • 定义 definition 创建于名字关联的实体,变量只能被定义一次

    extern int i;	// 声明
    extern double pi = 3.1416;	// 定义
    int j;		// 定义
    
  • 变量的作用域 scope

    • 全局作用域 global scope 在整个程序范围内都可被使用
    • 块作用域 block scope 在某一语句或者函数内可被使用

(5) 复合类型 compound type

  • 引用 reference 并非对象,它只是为一个已经存在的对象所起的另外一个名字

    int ival = 1024;
    int &refVal = ival;		// refVal 指向ival(是ival的另一个名字)
    int &refVal2;			// 报错:引用必须被初始化
    int &refVal3 = refVal	// 正确
    
    int i = 1024, i2 = 2048;
    int &r = i, r2 = i2;	// 正确:允许在一条语句中定义多个引用
    int &refVal = 10;		// 错误:引用类型的初始值必须是一个对象
    
  • 指针 pointer 存放某个对象的地址

    • 是对象,允许对指针赋值和拷贝
    • 无须在定义时赋初值
    • 不能定义指向 引用 的指针
    int ival = 42;
    int *p = &ival;		// p存放变量ival的地址,指向变量ival
    *p = 0;				// * 解引用符
    
    double dval;
    double *pd = &dval;	// 正确:pd存放dval的地址
    double *pd2 = pd;	// 正确:pd2与pd一样,均存放dval的地址
    
  • 空指针 null pointer 不指向任何对象

    int *p1 = nullptr;		// 等价于 int *p1 = 0, 最好用这种方法
    int *p2 = 0;			// 直接将 p2 初始化为字面常量0
    
    #include cstdlib
    int *p3 = NULL;			// 等价于 int *p3 = 0, 尽量避免使用
    
    int *p1 = nullptr;		// 等价于 int *p1 = 0, 最好用这种方法
    int *p2 = 0;			// 直接将 p2 初始化为字面常量0
    
    #include cstdlib
    int *p3 = NULL;			// 等价于 int *p3 = 0, 尽量避免使用
    
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-03 11:43:10  更:2021-09-03 11:43:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 20:31:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计