国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

詳解C++中的指針結構體數組以及指向結構體變量的指針

2020-01-26 14:52:33
字體:
來源:轉載
供稿:網友

C++結構體數組
一個結構體變量中可以存放一組數據(如一個學生的學號、姓名、成績等數據)。如果有10個學生的數據需要參加運算,顯然應該用數組,這就是結構體數組。結構體數組與以前介紹過的數值型數組的不同之處在于:每個數組元素都是一個結構體類型的數據,它們都分別包括各個成員項。

定義結構體數組和定義結構體變量的方法相仿,定義結構體數組時只需聲明其為數組即可。如:

struct Student //聲明結構體類型Student{  int num;  char name[20];  char sex;  int age;  float score;  char addr[30];};Student stu[3]; //定義Student類型的數組stu

也可以直接定義一個結構體數組,如:

struct Student{  int num;  char name[20];  char sex;  int age;  float score;  char addr[30];}stu[3];


struct{  int num;  char name[20];  char sex;  int age;  float score;  char addr[30];}stu[3];

結構體數組的初始化與其他類型的數組一樣,對結構體數組可以初始化。如:

struct Student{  int num;  char name[20];  char sex;  int age;  float score;  char addr[30];}stu[3]={  {10101,″Li Lin″,  ′M′, 18,87.5, ″103 Beijing Road″},  {10102,″Zhang Fun″,′M′,19,99,  ″130 Shanghai Road″},  {10104,″Wang Min″,′F′,  20,78.5, ″1010 Zhongshan Road″}};

定義數組stu時,也可以不指定元素個數,即寫成以下形式:

  stu[ ]={{…},{…},{…}};


編譯時,系統會根據給出初值的結構體常量的個數來確定數組元素的個數。一個結構體常量應包括結構體中全部成員的值。

當然,數組的初始化也可以用以下形式:

  Student stu[ ]={{…},{…},{…}}; //已事先聲明了結構體類型Student


由上可以看到,結構體數組初始化的一般形式是在所定義的數組名的后面加上 ={初值表列};
結構體數組應用舉例

下面舉一個簡單的例子來說明結構體數組的定義和引用。

【例】對候選人得票的統計程序。設有3個候選人,最終只能有1人當選為領導。今有10個人參加投票,從鍵盤先后輸入這10個人所投的候選人的名字,要求最后輸出這3個候選人的得票結果。

可以定義一個候選人結構體數組,包括3個元素,在每個元素中存放有關的數據。程序如下:

#include <iostream>using namespace std;struct Person //聲明結構體類型Person{  char name[20];  int count;};int main( ){  //定義Person類型的數組,內容為3個候選人的姓名和當前的得票數  Person leader[3]={"Li",0,"Zhang",0,"Fun",0};  int i,j;  char leader_name[20]; //leader_name為投票人所選的人的姓名  for(i=0;i<10;i++)  {   cin>>leader_name; //先后輸入10張票上所寫的姓名   for(j=0;j<3;j++) //將票上姓名與3個候選人的姓名比較     //如果與某一候選人的姓名相同,就給他加一票     if(strcmp(leader_name,leader[j].name)==0) leader[j].count++;  }  cout<<endl;  for(i=0;i<3;i++) //輸出3個候選人的姓名與最后得票數  {   cout<<leader[i].name<<":"<<leader[i].count<<endl;  }  return 0;}

運行情況如下:

Zhang

主站蜘蛛池模板:
永城市|
吴桥县|
佛教|
鸡西市|
兴城市|
化隆|
贡嘎县|
彭州市|
开江县|
资阳市|
鸡东县|
沐川县|
哈密市|
改则县|
左权县|
汕尾市|
廊坊市|
和政县|
临邑县|
安塞县|
木里|
五华县|
丹巴县|
漳平市|
兴化市|
鲁甸县|
达州市|
黑山县|
边坝县|
绥化市|
双峰县|
江华|
江阴市|
苏州市|
五常市|
宜州市|
磐安县|
湄潭县|
华安县|
英吉沙县|
仁化县|