C++基础入门教程(三):数组、字符串、结构体、共用体(2)
输出结果如下:
“mutou”
(“mutou”)
使用R开头,再用“(和)”符号把字符串包围起来,那么,中间的字符串就可以使用双引号等原本需要转义的字符了。
那么,name2字符串又是怎么回事呢?这是为了解决恶性循环的问题——如何在原始字符串里使用额外的 ( 字符呢?
于是,我们可以在“(中间添加一个*号,在)”中间也添加一个*,也就是变成这样:R”*(…..中间很多字符串….)*”
于是就可以在字符串中间使用 ( 等字符了。
其实不一定得加*号,可以加其他东西,而且可以加好几个,随你喜欢,但也有限制,不能加空格、左右括号、斜杠和控制字符。
4.结构体
结构体应该算是类的前身吧~
比较简单,不多说了,随便看看:
// 定义
struct BadMan
{
char name[]; // 也可以使用 std::string name; 但可能有些编译器不支持
int age;
long money;
};
// 使用
BadMan man1 =
{
"mutou",
18,
99999999
};
man1.money = 88888888;
好吧,不多说了~
5.共用体
人格分裂听过吗?
没听过吧~人格分裂就是好几个人的灵魂存在于同一个身体里,同时只能有一个灵魂在控制身体。(小若:瞎说~!)
C++也有这样的东西,那就是共用体,看代码:
union ManyOne
{
int age;
long money;
float girl;
};
ManyOne mOne;
mOne.age = 25;
std::cout << mOne.age << "\n\n";
mOne.money = 999990;
std::cout << mOne.age << "\n";
std::cout << mOne.money << "\n";
输出结果是:
25
999990
999990
共用体和struct很像,唯一有一点区别,那就是,共用体里的属性只能同时存在一个。
比如刚刚的代码,虽然age在之前赋值为25,但是一旦给其他属性赋值,那么age的值将不被保留。
因为他们使用的是同一个空间,这点要记住。
因为共用体的所有属性都是使用一个存储空间的,所以共用体占内存的大小是以需要最大存储空间的成员为准的。
也许第一次听说共用体的人会迷糊,其实共用体可以想象成是一个变量有多个名字,我们可以用不同的名字去使用它们。
只不过,这不同的名字有着不相同的类型摆了。
6.结束
嗯,这本书实在是太详(lao)细(dao)了,第四章还在继续进行中。(小若:你觉得和你比起来,谁更唠叨?)