1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
#include <iostream> // 输出流库 #include <string> using namespace std; // 使用标准命名空间 // 课程:09.6 结构体中const使用场景 //创建学生结构体 struct student { string name; int age; int score; }; //创建函数引用结构体 //值传递,会在内存另外创建相同数据的内存 void test1(student x) { cout << "-- 值传递函数 --" << endl; cout << "姓名:" << x.name << " 年龄" << x.age << " 分数:" << x.score << endl; } //创建地址传递函数 //地址传递,如果在函数体内修改了指针指向的值,外部也会跟着修改 void test2(student* x) { x->age = 28;// 修改后,外部也会跟着修改 cout << "-- 地址传递函数 --" << endl; cout << "姓名:" << x->name << " 年龄" << x->age << " 分数:" << x->score << endl; } //创建const修饰地址传递函数 //const地址传递,只能读取,不能修改 void test3(const student* x) { //x->age = 35; const修饰后,不允许修改,一旦修改会报错,避免误操作 cout << "-- const地址传递函数 --" << endl; cout << "姓名:" << x->name << " 年龄" << x->age << " 分数:" << x->score << endl; } int main() { //创建结构体变量 struct student x = { "小王",16,68 }; cout << "-- main原始数据 --" << endl; cout << "姓名:" << x.name << " 年龄" << x.age << " 分数:" << x.score << "\n\n"; //值传递函数 test1(x); //指针传递,修改值之后,外部也跟着修改了 test2(&x); cout << "main年龄:" << x.age << endl; //使用const修饰指针的指针传递 test3(&x); system("pause"); // 控制台暂停,等待下一步操作 return 0; // 结束返回值:0 } |
09.6 C++结构体中const使用场景
未经允许不得转载:Ai分享 » 09.6 C++结构体中const使用场景