• C++概念、头文件与c区别、变量、const关键字以及enum枚举


    C++概念

    C++最主要的就是:C++是面向对象的编程思想,而C是面向过程的编程思想。C++编写出来的效率比其他语言高的多。
    C++思想:万物皆对象
    C++语言的主要特点表现在两个方面,一是尽量兼容C,二是支持面向对象的方法。首先,C++的确是一个更好的C。它保持了C的简洁、高效和接近汇编语言等特点,对C的类型系统进行了改革和扩充,因此C++比C更安全,C++的编译系统能检查出更多的类型错误。
    由于C++与C保持兼容,这就使许多C代码不经修改就可以为C++所用,用C编写的众多的库函数和实用软件可以用于C++中。另外,由于C语言已被广泛使用,因而极大地促进了C++的普及和面向对象技术的广泛应用
    然而,也正是由于对C的兼容使得C++不是一个纯正的面向对象的语言C++既支持面向过程的程序设计,又支持面向对象的程序设计。
    C++语言最有意义的方面是支持面向对象的特征。虽然与C的兼容使得C++具有双重特点,但它在概念上是和C完全不同的语言,我们应该注意按照面向对象的思维方式去编写程序。

    头文件

    在C中,头文件一般为:

    #include
    
    • 1

    在换到C++中,我们将头文件改为:

    #include
    
    • 1

    即可。

    变量

    1.变量的声明和定义与C相差不大,故不作太多介绍
    2.变量的存储类型
    变量除了具有数据类型外,还具有存储类型。变量的存储类型决定了其存储方式,具体介绍如下。
    auto存储类型:采用堆栈方式分配内存空间,属于暂时性存储,其存储空间可以被若干变量多次覆盖使用。并且自动推导,推导必须初始化!!!

    int i;
    auto int i;
    eg:auto i = 1.23 + 8;
    
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    在这里插入图片描述
    register存储类型:存放在通用寄存器中。(R0-R15),目的是提高速度。无法取址。
    extern存储类型:在所有函数和程序段中都可引用。(外部声明
    static存储类型:在内存中是以固定地址存放的,在整个程序运行期间都有效。(只能自己.c用)

    const关键字(字符常量)

    符号常量在使用之前一定要首先声明,这一点与变量很相似。常量声明语句的形式为:

    const  数据类型说明符  常量名=常量值;
    
    • 1

    数据类型说明符  const  常量名=常量值;
    
    • 1

    例如,可以声明一个代表圆周率的符号常量:

    const float PI=3.1415926;
    
    • 1

    注意 符号常量在声明时一定要赋初值,而在**程序中间不能改变其值。**例如,下列语句是错误的:

    const float PI;
    PI=3.1415926;//错!常量不能被赋值
    
    • 1
    • 2

    与直接使用文字常量相比,给常量起个有意义的名字有利于提高程序的可读性。而且如果程序中多处用到同一个文字常量(如圆周率3.14),当需要对该常量值进行修改时(例如改为3.1416),往往顾此失彼,引起不一致性。使用符号常量,由于只在声明时赋予初值,修改起来十分简单,因而可以避免因修改常量值带来的不一致性。
    并且,不能使用非const修饰的指针指向const修饰的变量。

    enum枚举

    只要将变量的可取值一一列举出来,便构成了一个枚举类型。枚举类型的声明形式如下:

    enum 枚举类型名 {变量值列表}
    
    • 1

    例如:
    在这里插入图片描述
    可以看到:

    Week w = Fri;
    前面其实省略了enum
    
    • 1
    • 2

    结果:
    在这里插入图片描述
    说明:
    枚举元素具有默认值,它们依次为:0,1,2,…。例如,上例中SUN的值为0,MON为1,TUE为2,…,SAT为6。
    也可以在声明时另行定义枚举元素的值,如:

    enum Weekday(SUN=7,MON=1,TUE,WED,THU,FRI,SAT};
    
    • 1

    定义SUN为7,MON为1,以后顺序加1,SAT为6。
    枚举值可以进行关系运算
    整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换

  • 相关阅读:
    Bert语言大模型基础
    面试算法25:链表中的数字相加
    在Windows环境下设置定时任务(任务计划程序)(Python)
    软件过程的介绍
    VulnHub — Me-and-My-Girlfriend-1
    相机标定 >> 坐标系转换@内参、外参
    【Rust日报】2023-10-02 改进 Rust 宏中的自动完成功能
    pytest接口自动化测试框架 | 基于Pytest的Web UI自动化测试框架介绍
    vue项目分环境部署
    mysql学习(五)
  • 原文地址:https://blog.csdn.net/m0_61988812/article/details/138169620