• C++语法基础


    1 基本结构

    //导入系统输入输出头文件 iostream
    #include <iostream>
    //使用标准命名空间 std
    using namespace std;
    int main() {
        // TODO 将Hello, World!打印在屏幕上,并且进行换行
        cout << "Hello, World!" << endl;
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1、程序的第一行#include 是预处理器指令,告诉 C++ 编译器在实际编译之前要包含iostream 文件;
    2、using namespace std表示我们可以使用标准库中对象和变量的名称;
    3、int main()是主函数,程序从这里开始执行;
    4、//将会被编译器忽略,这里放置程序的注释内容。它们被称为程序的注释;
    5、cout << “Hello, World!” << endl,将Hello, World!打印在屏幕上,并且进行换行;
    6、return 0;终止 main() 函数,并返回值 0;

    2 变量

    变量指的是会随着程序运算而改变的量,维护这些变量会用到计算机的存储功能。

    • 计算机的存储功能会使用内存实现。
    • 计算机中的操作系统一般会把内存划分成不同区域来存储数据,以便于管理。
    • 内存中每个基本存储单元可以存放一个字节的数据,每个字节具有8位,也就是8个比特(bit)。
    • 每个内存单元有一个唯一的地址,常用一个16进制数表示和区分。
    • 变量的声明就是向内存申请变量,用于存放数据的过程,一般的声明方式为数据类型 变量名称
    // 声明可乐数量变量 coke
    int coke;
    // 声明爆米花数量变量 popcorn
    int popcorn;
    // 声明消费总额变量 money
    int money
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    变量名称也叫做标识符,有固定的构造规则:

    • 只能由字⺟、数字和下划线组成。
    • 数字不可以出现在第一个位置上。
    • C++的关键字(保留字)不可以⽤做标识符。
    • 最好简单易懂,用具有对应含义的英文或者拼音来表示。
    • 在声明变量时,也可以赋予这个变量一个初值,这被称为变量的初始化。

    3 循环结构

    当需要重复执行一段代码很多遍的时候,可以使用循环结构来解决问题。

    • 循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。
    • 由循环体中的条件,判断继续执行该功能还是退出循环。

    3.1 while循环

    只要给定的条件为真,while 循环语句会重复执行一个目标语句。

    while(condition)
    {
       statement(s);
    }
    
    • 1
    • 2
    • 3
    • 4

    3.2 for循环

    多次执行一个语句序列,简化管理循环变量的代码。

    for (循环变量赋初始值;循环条件;更新循环变量) 
    {
        循环体
    }
    
    • 1
    • 2
    • 3
    • 4

    3.3 do…while 循环

    不像 for 和 while 循环,它们是在循环头部测试循环条件。do…while 循环是在循环的尾部检查它的条件。do…while 循环与 while 循环类似,但是 do…while 循环会确保至少执行一次循环。

    do
    {
       statement(s);
    
    }while( condition );
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.4 嵌套循环

    一个循环内可以嵌套另一个循环。C++ 允许至少 256 个嵌套层次。

    for ( init; condition; increment )
    {
       for ( init; condition; increment )
       {
          statement(s);
       }
       statement(s); // 可以放置更多的语句
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4 字符串

    C++ 提供了以下两种类型的字符串表示形式:

    • C 风格字符串
    • C++ 引入的 string 类类型

    4.1 C 风格字符串

    C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持。字符串实际上是使用 null 字符 \0 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。

    #include <iostream>
    #include <cstring>
     
    using namespace std;
     
    int main ()
    {
       char str1[13] = "runoob";
       char str2[13] = "google";
       char str3[13];
       int  len ;
     
       // 复制 str1 到 str3
       strcpy( str3, str1);
       cout << "strcpy( str3, str1) : " << str3 << endl;
     
       // 连接 str1 和 str2
       strcat( str1, str2);
       cout << "strcat( str1, str2): " << str1 << endl;
     
       // 连接后,str1 的总长度
       len = strlen(str1);
       cout << "strlen(str1) : " << len << endl;
     
       return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    4.2 string 类类型

    C++提供了一套更好的工具,叫做标准模版库(Standard Template Library,STL),封装了很多功能,比如一些数据结构(队列等)和算法(排序等),其中一种叫 string 的数据类型可以专门用来处理字符串的相关问题。string 类型直接把字符串当作一个整体,可以像整型变量、字符变量一样使用。

    #include <iostream>
    // 加载string 头文件
    #include <string>
    using namespace std;
    
    int main() {
        string userName_old = "LaoWang";
        string userName_new = "Liu";
        string str;
        int len;
    
        // 连接小六的新老用户名,并赋值给str
        str = userName_old + userName_new;
        cout << userName_old << " + " << userName_new << " = " << str << endl;
    
        // 输出连接后str的总长度
        cout << "str length:  " << str.size() << endl;
        // cout << "str length:  " << str.length() << endl;
    
        // 比较新老用户名的字典序
        cout << (userName_old > userName_new) << endl;
    
        // 再把老用户名赋给str
        str = userName_old;
        cout << "str : " << str << endl;
        
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    string还有一些非常方便的操作函数在这里插入图片描述

    5 结构化程序设计

    5.1 结构化程序设计

    自顶向下的分解,自底向上的实现。每个小问题设计为一个函数,公共小问题可以设计成一个库
    在这里插入图片描述
    程序由3种基本结构组成

    • 顺序
    • 分支
    • 循环

    5.2 枚举类型与头文件

    枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。

    enum <类型名> {<枚举常量表>};
    enum color_set1 {RED, BLUE, WHITE, BLACK}; // 定义枚举类型color_set1
    
    • 1
    • 2

    枚举常量代表该枚举类型的变量可能取的值,编译系统为每个枚举常量指定一个整数值,默认状态下,这个整数就是所列举元素的序号,序号从0开始。可以在定义枚举类型时为部分或全部枚举常量指定整数值,在指定值之前的枚举常量仍按默认方式取值,而指定值之后的枚举常量按依次加1的原则取值。 各枚举常量的值可以重复。例如:

    enum fruit_set {apple, orange, banana=1, peach, grape}
    //枚举常量apple=0,orange=1, banana=1,peach=2,grape=3。
    enum week {Sun=7, Mon=1, Tue, Wed, Thu, Fri, Sat};
    //枚举常量Sun,Mon,Tue,Wed,Thu,Fri,Sat的值分别为7、1、2、3、4、5、6。
    
    • 1
    • 2
    • 3
    • 4

    枚举常量只能以标识符形式表示,而不能是整型、字符型等文字常量。
    枚举类型与枚举变量可以同时定义,枚举变量的值只能取枚举常量表中所列的值,就是整型数的一个子集。枚举变量占用内存的大小与整型数相同。

    enum {Sun,Mon,Tue,Wed,Thu,Fri,Sat} weekday1, weekday2;
    
    • 1

    枚举变量允许的关系运算有:==、<、>、<=、>=、!=等

    //比较同类型枚举变量color3,color4是否相等
    if (color3==color4) cout<<"相等"//输出的是变量color3与WHITE的比较结果,结果为1
    cout<< color3<WHITE;
    
    • 1
    • 2
    • 3
    • 4

    头文件
    包含所有的符号常量定义、类型定义和函数原型声明

    每个模块都include这个头文件

    5.3 库与预处理

    6 指针和引用

    6.1 指针基本运算

    6.2 指针与数组

    6.3 动态内存

    6.4 指针与字符串

    6.5 指针与函数

    6.6 引用

    7 类和对象

    7.1 面向对象

    7.2 类

    7.3 使用对象

    7.4 构造与析构

    7.5 运算符重载

    7.6 继承与多态

    8 进阶

    8.1 输入输出进阶

    8.2 文件和流

    8.3 异常处理

    8.4 模板

  • 相关阅读:
    采用一种估值方法,自动化评估某个股票价格合理性
    SpringMvc接收参数
    两个移相算法
    如何比较两个对象以确定第一个对象包含与JavaScript中的第二个对象等效的属性值?
    1024程序员节特辑:【Spring Boot自动配置原理揭秘】
    2023长春理工大学计算机考研信息汇总
    android WindowManager的简单使用
    Go For Web:踏入Web大门的第一步——Web 的工作方式
    Vue Router
    React总结1
  • 原文地址:https://blog.csdn.net/weixin_45397053/article/details/125416986