#include <iostream>
#include <cstring>
using namespace std;
int main(void){
struct stu{
int age;
char name[20];
void who(void){
cout <<"我是:" << name << " 我今年:" << age <<endl;
}
};
stu s1;
s1.age = 21;
strcpy(s1.name, "张飞");
s1.who();
return 0;
}
联合体
C++中定义联合体变量,可以省略union关键字
cpp复制代码
union XX{......};
XX x;//定义联合体变量直接省略union
支持匿名联合
cpp复制代码
union{ //没有名字
......
};
cpp复制代码
#include <iostream>
using namespace std;
int main(void){
union { //匿名联合
int num;
char c[4];
};
num = 0x12345678;
cout << hex << (int)c[0] <<" " << (int)c[1] << endl;
return 0;
}
枚举
C++中定义枚举变量,可以省略enum关键字
C++中枚举是独立的数据类型,不能当做整型数使用
cpp复制代码
#include <iostream>
using namespace std;
int main(void){
enum COLOR{RED, GREEN, BLUE};
COLOR c = GREEN;
//c = 2; //error
cout << c << endl;
return 0;
}
布尔
C++中布尔(bool)是基本数据类型,专门表示逻辑值
布尔类型的字面值常量:
true 表示逻辑真
false表示逻辑假
布尔类型的本质: 单字节的整数,使用1表示真,0表示假
任何基本类型都可以被隐式转换为布尔类型
cpp复制代码
#include <iostream>
using namespace std;
int main(void){
bool b = true;
cout << b <<endl;
cout <<boolalpha << b <<endl;
b = 3 + 2;
cout <<boolalpha << b <<endl;
return 0;
}
字符串
C++兼容C中的字符串表示方法和操作函数
C++专门设计了string类型表示字符串
string类型字符串定义
cpp复制代码
string s; //定义空字符串
string s("hello");
string s = "hello";
string s = string("hello");
字符串拷贝
cpp复制代码
string s1 = "hello";
string s2 = s1;
字符串连接
cpp复制代码
string s1 = "hello", s2 = " world";
string s3 = s1 + s2;//s3:hello world
s1 += s2;//s1:hello world