结构体struct的定义和用法
結(jié)構(gòu)體(struct)
通俗來(lái)講,就是打包封裝一些有共同特征的不同數(shù)據(jù)的變量封裝在內(nèi)部,通過(guò)一定方法訪問(wèn)修改內(nèi)部變量??梢哉f(shuō),結(jié)構(gòu)體是讓一些很散的數(shù)據(jù)變得很整(即井然有序)。
結(jié)構(gòu)體的定義和使用
語(yǔ)法:struct 結(jié)構(gòu)體名 { 結(jié)構(gòu)體成員列表 };?
- struct 結(jié)構(gòu)體名 變量名
- struct 結(jié)構(gòu)體名 變量名 = { 成員1值 , 成員2值…}
- 定義結(jié)構(gòu)體時(shí)創(chuàng)建變量
其中,system('pause')在C中就是從程序里調(diào)用“pause”命令,類似:“Press any key to exit”等待用戶按下任意鍵繼續(xù)的意思;在C++中,作用于防止窗口消失,即暫停黑窗口,注意不要在return語(yǔ)句之后加system(“pause”),那樣執(zhí)行不了!
結(jié)構(gòu)體數(shù)組
作用:將自定義的結(jié)構(gòu)體放入到數(shù)組中方便維護(hù)
?語(yǔ)法: struct? 結(jié)構(gòu)體名? 數(shù)組名[元素個(gè)數(shù)] = {? { } ,? { } ,...., { }? }
結(jié)構(gòu)體指針
. 和->d 區(qū)別:
.? 來(lái)訪問(wèn)結(jié)構(gòu)體成員/屬性
-> 來(lái)訪問(wèn)其指向的結(jié)構(gòu)體成員/屬性
結(jié)構(gòu)體嵌套
#include "iostream" using namespace std;//學(xué)生結(jié)構(gòu)體定義 struct student {//成員列表string name; //姓名int age; //年齡int score; //分?jǐn)?shù) };//教師結(jié)構(gòu)體定義 struct teacher {//成員列表int id; //職工編號(hào)string name; //教師姓名int age; //教師年齡struct student stu; //子結(jié)構(gòu)體 學(xué)生 };int main() {struct teacher t1;t1.id = 10000;t1.name = "老王";t1.age = 40;t1.stu.name = "張三";t1.stu.age = 18;t1.stu.score = 100;cout << " 教師 職工編號(hào): " << t1.id << " 姓名: " << t1.name << " 年齡: " << t1.age << endl;cout << " 輔導(dǎo)學(xué)員 姓名: " << t1.stu.name << " 年齡:" << t1.stu.age << " 考試分?jǐn)?shù): " << t1.stu.score << endl;system("pause");return 0; }結(jié)構(gòu)體做函數(shù)參數(shù)
傳遞方式包括:值傳遞、地址傳遞
#include "iostream" using namespace std;//學(xué)生結(jié)構(gòu)體定義 struct student {//成員列表string name; //姓名int age; //年齡int score; //分?jǐn)?shù) };//值傳遞 void printStudent(student stu ) {stu.age = 28;cout << "子函數(shù)中 姓名:" << stu.name << " 年齡: " << stu.age << " 分?jǐn)?shù):" << stu.score << endl; }//地址傳遞 void printStudent2(student *stu) {stu->age = 28;cout << "子函數(shù)中 姓名:" << stu->name << " 年齡: " << stu->age << " 分?jǐn)?shù):" << stu->score << endl; }int main() {student stu = { "張三",18,100};//值傳遞printStudent(stu);cout << "主函數(shù)中 姓名:" << stu.name << " 年齡: " << stu.age << " 分?jǐn)?shù):" << stu.score << endl;cout << endl;//地址傳遞printStudent2(&stu);cout << "主函數(shù)中 姓名:" << stu.name << " 年齡: " << stu.age << " 分?jǐn)?shù):" << stu.score << endl;system("pause");return 0; }注:如果不想修改主函數(shù)中的數(shù)據(jù),用值傳遞,反之用地址傳遞。
可以用關(guān)鍵字const定義指針stu,修飾列表成員屬性,保證修飾的屬性的值(左定值,右定向)不被改變,防止函數(shù)體中的誤操作。
總結(jié)
以上是生活随笔為你收集整理的结构体struct的定义和用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 关于C语言之结构体(struct)介绍
- 下一篇: C语言结构体(struct)常见使用方法