C++ 学习笔记

发布于:2024-06-21 ⋅ 阅读:(71) ⋅ 点赞:(0)

一、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)函数和空参函数。

三十三、函数嵌套调用。

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

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


网站公告

今日签到

点亮在社区的每一天
去签到