C++菜鸟日记1

共用体:

#include<iostream>
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.枚举可以用来干什么,可以以常量符号的方式代替数值,可以清晰的知道数值的含义,本质是是一种创建常量符号的类型,和结构体类似的用法。

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

1.用于swich语句:

#include <iostream>
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;
}

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

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

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

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

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

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

4.7 指针和自由存储空间

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

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

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

指针和数组的关系

#include<iostream>
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");
}

在这里插入图片描述

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

关于枚举问题

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

磁生电

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值