C++ 学习笔记

一、IDE。

所谓IDE(集成开发环境)即包含:

· 代码编辑功能。

**·**代码错误提示。

**·**程序调试。

· 代码编译。

等各类辅助程序开发的功能的集合体。

二、Clion说明。

Clion 是以工程管理代码,一般情况下,一个工程指代一个具体的程序开发任务。

即,标准使用场景下:

**·**每个程序的开发,都应有各自的工程。

· 由于main函数是程序入口,所以每个工程仅允许1个main函数。

三、快捷键。

shift + alt + 键盘上/下 控制当前行上下移动

ctrl + D 复制当前行

HOME,END 移动广播到行首、行尾

ctrl + 键盘左/右 光标左右跳单词

ctrl + A 全选

ctrl + C/V 复制、粘贴

四、常量。

常量包括字面常量和符号常量。

字面常量又包括以下类型:

**·**整型字面常量:整数,不带小数点的数字。

**·**实型字面常量:小数,带有小数点的数字。

**·**字符型字面常量:以单引号包围的单个字符(注意只能是一个字符,不能是0个或多个)。

**·**字符串字面常量:以双引号包围的任意个字符。

五、标识符和关键字。

在C++代码中,会涉及到许多命名的场景,比如变量、类和函数的命名。这些命名统一称之为标识符,即表示某类实体的符号(名称)。

标识符的内容限定:只允许由字母、数字、下划线组成,且不能以数字开头(也不可使用关键字)。

六、解决控制台输出中文乱码问题的方法。

方式一:

**·**在代码头部引入 #include "windows.h"

**·**在main()函数内部编写 SetConsoleOutputCP(CP_UTF8);

方式二:

**·**在main()函数内部编写 system("chcp 65001");

七、数据类型。

首先了解无符号和有符号的含义。

**·**无符号:仅正数。

**·**有符号:可以包含负数(默认都是有符号)。

如何定义无符号类型。

**·**需要主动使用 unsigned,如unsigned int num = 1;

**·**u_short、u_int、u_long 是无符号short、int、long的快捷写法。

整型数据的各种类型:

**·**short:占用2字节。

**·**int:占用4字节。

· long:windows为4字节,linux为4字节(32位),8字节(64位)。

**·**long long:占用8字节。

通过sizeof()函数可查看不同类型数据占用的内存空间。

实型数据的各种类型:

**·**float:占用4字节,有效位数为6~7位。

**·**double:占用8字节,有效位数为15~16位。

· long double:占用16字节,有效位数为18~19位。

实型不区分有无符号,全部有符号。有效位数为参考,具体看编译器的标准实现。

控制cout输出小数的格式:

cout.width(20); // 设置显示宽度

cout << fixed; // 设置小数显示

在C++中,字面量的类型是自动确定的。整数默认为int,如范围不足会自动扩容,顺序为:int ->unit ->long ->ulong ->long long ->u long long。浮点数默认为double,范围不足会自动扩容到long double。

字符串数据类型:

· char s[ ] = "abc"; 字符数组模式,不可更改变量值

**·**char *s = "abc"; 指针模式

· string s = "abc" string 类型模式

布尔数据类型(主要用于程序中的流程控制):

· true 本质上是数字1

· false 本质上是数字0

八、运算符。

运算符是一种符号,用于告诉编译器执行特定的数学或逻辑操作。C++内置的运算符有算数运算符、赋值运算符、比较运算符、逻辑运算符和位运算符等。

九、逻辑判断语句。

(1)多条件判断。

(2)嵌套判断。

十、switch控制语句。

十一、枚举类型。

十二、while 循环。

十三、do while 循环。

十四、for 循环。

十五、变量的作用域。

十六、continue 和 break 关键字。

十七、goto 语句。

输出的是 a b d,跳过了c。

十八、数组。

十九、字符数组。

二十、多维数组。

二十一、指针。

二十二、野指针和空指针。

二十三、指针运算。

二十四、动态内存分配。

二十五、数组元素的删除和插入。

二十六、指针悬挂。

二十七、常量指针。

二十八、结构体。

二十九、结构体指针。

三十、结构体指针数组。

三十一、函数。

三十二、无返回值(void)函数和空参函数。

三十三、函数嵌套调用。

三十四、参数的值传递和地址传递。

cpp 复制代码
void query(int num) {
    cout << "--------------------查询余额---------------------" << endl;
    cout << "您的余额为:" << num << endl;
}

int add(int num){
    cout << "--------------------存款---------------------" << endl;
    int a;
    cout << "请输入您要存款的金额:";
    cin >> a;
    int b = num + a;
    cout << "存款成功! 您的余额为:" << b << endl;
    return b;
}

int sub(int num){
    cout << "--------------------取款---------------------" << endl;
    int a;
    cout << "请输入您要取款的金额:";
    cin >> a;
    int b = num - a;
    cout << "取款成功! 您的余额为:" << b << endl;
    return b;
}

void exit(){
    cout << "已退出当前账户!" << endl;
}

void menu(int total, const string& name){
    cout << "--------------------主菜单--------------------" << endl;

    cout << name << ",您好!欢迎来到黑马银行ATM。" << endl;
    cout << "查询余额 \t[输入1]" << endl;
    cout << "取款 \t[输入2]" << endl;
    cout << "存款 \t[输入3]" << endl;
    cout << "退出 \t[输入4]" << endl;
    int num;
    cout << "请输入您的选择:";
    cin >> num;
    switch (num)
    {
    case 1:
        query(total);
        menu(total, name);
        break;
    case 2:
        total = sub(total);
        menu(total, name);
        break;
    case 3:
        total = add(total);
        menu(total, name);
        break;
    case 4:
        exit();
        break;
    default:
        cout << "输入错误!请重新输入!" << endl;
    }

}


int main()
{
    int total = 5000000;
    string name;
    cout << "请输入您的姓名:";
    cin >> name;
    menu(total, name);
    return 0;
}

三十五、函数传入数组。

三十六、引用和引用传参。

三十七、返回指针的函数及局部变量的生命周期。

三十八、static关键字。

三十九、函数返回数组。

本笔记学自黑马程序员官方教程,如有钱全,联系删除。

2024新版黑马程序员C++零基础入门到精通全套视频教程,基于AI大模型的智能编码辅助编程,C++从基础到项目开发一套通关_哔哩哔哩_bilibili

相关推荐
每天题库c3 小时前
水利水电安全员C证考试题库资料,2024年全国考试通用!
学习·考证·水利水电安全员
舞者H4 小时前
源码层面学习动态代理
java·学习
海盗猫鸥4 小时前
C++入门基础篇(1)
开发语言·c++·学习
阳光九叶草LXGZXJ4 小时前
南大通用数据库-Gbase-8a-学习-44-DDLEVENT恢复
linux·数据库·sql·学习
极乐码农5 小时前
Spring学习03-[Spring容器核心技术IOC学习进阶]
java·学习·spring
逆水寻舟5 小时前
算法学习记录2
python·学习·算法
honey ball6 小时前
逆变器学习笔记(二)
笔记·学习·开源
摸鱼仙人~6 小时前
计算机组成原理学习笔记(一)
笔记·学习
电商运营花6 小时前
告别盲目跟风!1688竞品数据分析实战指南(图文解析)
大数据·人工智能·经验分享·笔记·数据挖掘·数据分析
星石传说6 小时前
科研训练课程——2024/7/8
笔记·生物