C/C++ 数组允许定义可存储相同类型数据项的变量,但是结构是 C++ 中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。
结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性:
Title :标题
Author :作者
Subject :类目
Book ID :书的 ID
定义结构
1 2 3 4 5 6
| struct strct_name { type name; type name2; type name3; ... }
|
初始化结构
1 2 3 4 5 6 7 8 9 10 11 12
| struct stru { char a[10]; char b[10]; int c; }
stru str; strcpy(stru,"hello");//需要导入cstring.h str.b = "两种方法都可以初始化字符串"; str.c = 123; //打印结构值 cout << str.a << endl << str.b << endl << str.c << endl;
|
指向结构的指针
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| struct stru { char a[10]; char b[10]; int c; }
stru str; stru *str2 = &str; //这时候就不能用.来访问或者修改结构内容了 需要用到->来进行修改 str2->a = "hello:"; str2->b = "world"; str2->c =4566; //打印结构值 cout << str2->a << endl << str2->b << endl << str2->c << endl;
|
结构做函数参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| struct stru { char a[10]; char b[10]; int c; }
stru str; //初始化 strcpy(stru,"hello");//需要导入cstring str.b = "两种方法都可以初始化字符串"; str.c = 123;
//调用打印结构函数 printStruct(str);
void printStruct(struct stru str){ //打印结构值 cout << str2->a << endl << str2->b << endl << str2->c << endl; }
|
给结构添加别名
1 2 3 4 5 6 7 8 9 10 11 12
| typedef struct stru { char a[10]; char b[10]; int c; }st;
st str; strcpy(stru,"hello");//需要导入cstring.h str.b = "两种方法都可以初始化字符串"; tr.c = 123; //打印结构值 cout << str.a << endl << str.b << endl << str.c << endl;
|