日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

结构体struct的定义和用法

發(fā)布時(shí)間:2023/12/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 结构体struct的定义和用法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

結(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)建變量
#include "iostream" using namespace std;//結(jié)構(gòu)體變量創(chuàng)建方式3:定義結(jié)構(gòu)體時(shí)順便創(chuàng)建變量 struct student {//成員列表char name[10];int age;int score; }stu3int main(){//結(jié)構(gòu)體變量創(chuàng)建方式1: struct 結(jié)構(gòu)體名 變量名struct student stu1;stu1.name = "七喜";stu1.age = 20;stu1。score = 95;cout<<"姓名:"<<stu1.name <<" 年齡:"<<stu1.age <<" 分?jǐn)?shù):"<<stu1.score <<endl;//創(chuàng)建結(jié)構(gòu)體變量方式2:struct student sut2 = {"可樂(lè)",19,100};cout<< "姓名:"<<stu2.name<<" 年齡:"<<stu2.age<<" 分?jǐn)?shù):"<<stu2.score<< endl;//方式3stu3.name = "雪碧";stu3.age = 20;stu3.score = 90;cout<<"姓名:"<<stu3.name <<" 年齡:"<<stu3.age<<" 分?jǐn)?shù):"<<stu3.score<< endl;system('pause');return 0; }

其中,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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。