• C++菜鸟日记1


    共用体:

    #include
    using namespace std;
    int main()
    {
    	struct widge
    	{
    		char brand[20];
    		int type;
    		union id
    		{
    			long id_num;
    			char id_char[20];
    		}id_val;
    
    	};
    
    	widge prize;
    	cout << "Please cin the prize.type mumber:" << endl;
    	cin >> prize.type;
    	if (prize.type == 1)
    	{
    		cout << "Please cin the prize.id_val.id_num mumber:" << endl;
    		cin >> prize.id_val.id_num;
    	}
    	else
    	{
    		cout << "Please cin the prize.id_val.id_char mumber:" << endl;
    		cin >> prize.id_val.id_char;
    	}
    
    	
    
    	return 0;
    	system("pause");
    
    }
    
    • 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

    枚举

    1.枚举可以用来干什么,可以以常量符号的方式代替数值,可以清晰的知道数值的含义,本质是是一种创建常量符号的类型,和结构体类似的用法。

    请看代码示例可以更好的帮助理解,这里强烈推荐菜鸟教程,上面有案例看的清晰明了。

    1.用于swich语句:

    #include 
    using namespace std;
    
    // Declare the enumerated type
    enum Roster { Tom = 1, Sharon, Bill, Teresa, John };
    // Sharon - John will be assigned default values 2-5.
    
    int main()
    {
        int who;
        cin >> who;
        switch (who)
        {
            case Tom :
                cout << "Tom's birthday is January 3.\n";
                break;
            case Sharon :
                cout << "Sharon's birthday is April 22.\n";
                break;
            case Bill :
                cout << "Bill's birthday is December 19.\n";
                break;
            case Teresa :
                cout << "Teresa's birthday is February 2.\n";
                break;
            case John :
                cout << "John's birthday is June 17.\n";
                break;
            default :
                cout << "Invalid selection\n";
        }
        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

    2.为有意义的整数起一个别名,简化代码
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    3.OOP和过程开发的区别在哪里?

    OOP是在运行时决策,过程开发是在编译时决策,举个例子,要为一个数组分配内存,但是经验情况是20个元素足够,但是也有200个元素情况的出现,所以为了保险起见,过程编程在一开始把数组定义为200个元素,但是这种情况会造成大多数情况浪费了很多内存,而OOP编程将决策推迟到运行阶段,在程序运行时告诉它此次需要20元素的数组,在下次告诉它需要200个元素的数组。

    为了使程序在运行阶段可以确定数组大小,可以使用关键字New来申请正确大小的内存,并使用指针来跟踪新分配内存的位置。

    这也说明了C++比c语言更方便简介。

    4.7 指针和自由存储空间

    问1: 计算机存储数据必须跟踪哪三个属性?
    指针是跟踪哪个属性的?
    常规变量的地址怎么获得?
    home是一个变量,其地址怎么表示?

    使用常规变量时,值和地址哪个是指定量哪个是派生量?

    OOP编程和过程编程有什么区别?
    哪个决策在运行阶段?编译阶段?举个例子,为一个经验数组的个数分配元素个数。

    指针和数组的关系

    #include
    using namespace std;
    int main()
    {
    	int* pt = new int[10];//给指针开辟一个数组
    	*pt = 5;
    	cout << "*pt = 5时," << *pt << "   此时pt[0]="<<pt[0]<<endl;
    	pt[0] = 6;
    	cout << "pt[0] = 6时," << pt[0] << "   此时*pt= " << *pt << endl;
    	pt[9] = 44;
    	cout << "pt[9] = 44时," << pt[9] << "   此时*pt=" << *pt << endl;
    	cout << "*(pt+9)=" << *(pt + 9) << endl;
    	int coasts[10];
    	*(coasts + 4) = 23;
    	cout << "coasts=" << coasts << "  *coasts= "<<*coasts<<endl;
    	cout << "*(coasts + 4) = 23时," << "coasts[4]=" << coasts[4] << endl;
    
    	return 0;
    	system("pause");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    在这里插入图片描述

    当为指针在内存空间开辟一个动态数组,则此时的指针变量名,可以代替数组名,可以用索引的方式对匿名数组进行赋值,但是指针名时数组的第一个元素地址,想要其指向别处要用语句:*(pt + 9)

    关于枚举问题

    今天编写程序时,遇到一个问题,能不能把枚举的字符常量给打印出来,查了资料,不能打印,打印出来只能是Int类型
    1.枚举的声明和结构的申明一样,都是 关键字 类型名 {};
    2.枚举{}里面是离散数字代表的标识符
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    枚举常用在switch语句中
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    VUE3 ref,props,生命周期
    Hexagon_V65_Programmers_Reference_Manual(11)
    Python函数详解(四)——Python函数参数使用注意事项
    java 低耦合观察者模式
    水表能实时监测哪些参数?
    【随想】闲聊、沟通和谈判
    影响服务器性能的主要因素是什么?
    深入了解RTMP推流技术:视频汇聚EasyCVR低延迟与高稳定性分析
    线程通信初始
    Django中间件判断网站的登陆状态
  • 原文地址:https://blog.csdn.net/weixin_43694742/article/details/133741714