• C++入门基础04:代码实战经验分享(全局变量与局部变量重名、静态变量、数据类型选取、养成变量创建就初始化、少用多层指针)


    C++入门基础04:代码实战经验分享(全局变量与局部变量重名、静态变量、数据类型选取、养成变量创建就初始化、少用多层指针)

    1、全局变量与局部变量重名

    #include 
    //系统定义头文件一般是尖括号
    #include
    #include
    using namespace std;
    
    int a = 10; //全局变量
    
    int fun() {
    
        return 0;
    };
    
    int main()
    {
        //基本内置类型 变量 引用与指针 const限定符 自定义数据结构
        //语法:法律 
        //经验:道德约束
    
        //1、全局变量与局部变量重名
        int a = 6; //重名,局部变量会屏蔽全局变量;
        cout << "a:" << a << endl;
        cout << "全局变量a:" << ::a << 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

    在这里插入图片描述

    2 、静态变量

    #include 
    //系统定义头文件一般是尖括号
    #include
    #include
    using namespace std;
    
    int a = 10; //全局变量
    
    int fun() {
    
        return 0;
    };
    
    int main()
    {
        //2、静态变量
        //这个变量存储在静态存储区中。这个变量的生命周期比较长。只有等到程序执行完成,进行内存空间回收的时候才会消失。
        //如果想要每次程序执行的时候,这个变量的值都不变,就使用静态变量来处理。
        static int b = 8;
    
        //此外静态变量还可以如下使用:
        for (int i = 0; i < 10; i++) {
    	    int d = 1;
    	    d++;
    	    cout << "d:" << d << endl;
    	}
        //静态变量用于循环中:
        cout << "\n" << endl;
        for (int i = 0; i < 10; i++) {
            static int c = 1;
            c++;
            cout << "c:" << c << 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
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    在这里插入图片描述

    3、数据类型选取

    1、一般选int(4个字节,int可以表示的数据范围是-21亿到21亿左右),short (2个字节,16位,2^16次方个数的值表示)太小,int不够选long long(8个字节);
    2、不可能为负数,选无符号,无符号有符号不要混用;
    3、不要使用char做算术运算;
    4、浮点数运算最好选用double,精度高而且性能和float几乎没有差别。
    
    • 1
    • 2
    • 3
    • 4

    4、养成变量创建就初始化

    养成变量创建就要初始化的好习惯,特别是指针,初始化为空指针nullptr(0x00000000的地址)。
    内置类型有默认初始值,但是不建议依赖这个。

    5、少用多层指针,最多用到两层(指向指针的指针)

    #include 
    //系统定义头文件一般是尖括号
    #include
    #include
    using namespace std;
    
    int a = 10; //全局变量
    
    int fun() {
        return 0;
    };
    
    int main()
    {
         int b = 8;
    
        //5、少用多层指针,最多用到两层(指向指针的指针)
        int* p = &b;
        //指向指针的指针
        int** pp = &p;
    
        cout << "b地址:" << &b << endl;
        cout << "p指针:" << p << endl;
        cout << "pp指针(指向指针的指针):" << pp << 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
    • 29

    在这里插入图片描述

  • 相关阅读:
    Arduino安装全流程(包括ESP32离线包安装)
    每日三题 9.15
    python笔记
    第二章第六节:字符串的补充和总结
    C语言从入门到精通 第七章(利用数组处理批量数据)
    消息中间件介绍
    80%测试员被骗,关于jmeter 的一个弥天大谎!
    光伏电池局部遮阴下三种不同的工况对比MATLAB仿真模型
    SpringCloud入门教程一(微服务原理、Eureka注册中心、Ribbon负载均衡,nacos注册中心)
    VoLTE基础自学系列 | eSRVCC稳态呼叫切换流程
  • 原文地址:https://blog.csdn.net/m0_37755995/article/details/127950000