C++ Primer Plus 第四章之C++ Primer Plus复合类型学习笔记
1. 复合类型简介
在C++中有许多复合类型,如数组、结构体、共用体和指针等,它们能够将多个基本类型变量组合成更加复杂的数据结构。在使用复合类型时,需要注意其内存结构和使用方法,以充分发挥其特性。
2. 数组
数组是一种复合类型,可以存储多个同一类型的数据,通过下标访问数组元素。数组的定义可以使用如下语句:
type name[size];
其中,type为数组元素的类型,name为数组的名称,size为数组的长度。数组下标从0开始,最大下标为size-1。
示例1:定义一个长度为5的整型数组并初始化
int numbers[5] = {0, 1, 2, 3, 4};
示例2:使用循环遍历数组
for (int i = 0; i < 5; i++) {
cout << numbers[i] << " ";
}
3. 结构体
结构体是一种用户自定义的数据类型,可以将多个不同类型的变量组合成一个整体。结构体的定义可以使用如下语句:
struct name {
type1 member1;
type2 member2;
...
};
其中,name为结构体的名称,type1为结构体成员1的类型,member1为结构体成员1的名称。结构体的成员可以直接通过结构体名称加点的形式进行访问。
示例3:定义一个学生结构体
struct student {
string name;
int age;
double score;
};
示例4:使用学生结构体对象
student s = {"Tom", 18, 90.5};
cout << s.name << " " << s.age << " " << s.score << endl;
4. 共用体
共用体也是一种用户自定义的数据类型,与结构体不同的是,共用体中所有成员公用同一块内存空间。共用体的定义可以使用如下语句:
union name {
type member1;
type member2;
...
};
其中,name为共用体的名称,type为共用体成员的类型。共用体的成员可以直接通过共用体名称加点的形式进行访问。
示例5:定义一个身份证共用体
union id {
long long number;
char code[18];
};
示例6:使用身份证共用体对象
id myID;
myID.number = 1234567890;
cout << myID.number << endl; // 输出 1234567890
strcpy(myID.code, "110101199901010101");
cout << myID.code << endl; // 输出 110101199901010101
5. 指针
指针是一种特殊的变量,存储的是内存地址。指针变量需要先定义,然后再初始化,指向某个内存地址。通过指针可以实现对变量的间接访问和修改。指针的定义可以使用如下语句:
type *name;
其中,type为指针指向的类型,name为指针变量名称。
示例7:定义一个整型指针变量
int *ptr;
示例8:使用指针访问变量
int num = 10;
int *ptr = #
cout << *ptr << endl; // 输出 10
6. 总结
复合类型是C++中非常重要的概念,掌握好复合类型的使用方法,能够提高程序的效率和灵活性。在使用复合类型时,需要注意其内存结构以及正确的使用方法,以保证程序的正确性和稳定性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++ Primer Plus 第四章之C++ Primer Plus复合类型学习笔记 - Python技术站