iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
佛心分享-IT 人自學之術

C++探險家系列 第 14

Day 14 結構、聯合與列舉

  • 分享至 

  • xImage
  •  

介紹一下這些分別是甚麼?

結構(struct)聯合(union)列舉(enum) 是三種不同的數據類型,常用來組織和管理不同形式的數據。

1. 結構:

結構是一種用來定義多個變量(可以是不同類型)的數據結構。結構允許你將不同類型的變量組合成一個單一的數據單元。每個成員都有自己獨立的內存空間,成員變量的大小和數量決定了結構的總大小。結構中的每個成員都可以獨立地被訪問和修改。

2. 聯合:

聯合是一種特殊的數據結構,允許你在同一內存位置存儲不同類型的數據。它的所有成員共享同一塊內存,因此聯合的大小取決於其最大成員的大小。儘管可以定義多個成員,但在任何時刻,只有一個成員可以儲存有效的數據,因為所有成員共用同一塊內存。

3. 列舉:

列舉是一種用來定義整數常量的數據類型。它允許你為一組整數值定義易於閱讀的名稱。列舉中的每個標識符都代表一個整數值,預設從 0 開始,並可以自定義某些標識符的值。列舉主要用於表示狀態、選項或標誌。

程式小練習(使用結構設計好友名單):

#include <iostream>
#include <string> 
#include <stdio.h> 
using namespace std;
struct FRIEND { 
    string name; 
    string phone; 
    string birth; 
};
void show (FRIEND (1, int) ; 
FRIEND enter (void); 
int main (void) 
{
    int now=0; 
    char ch; 
    FRIEND f [20];
    while (1) 
    {
    cout<<"請問您要 1)輸出好友名單 2)新增好友資料O)離開:";
    cin>>ch;
    if (ch == '1'){
     if (now ! = 0)
      show (f, now) ;
     else 
     cout<<"目前尚無資料"; 
     }
     else if (ch == '2') {
      if (now>=20) 
       cout<<"名單已滿!";
       else{
       f [now] = enter ( );
       now++;
          }
       }
       else if (ch=='0' ) 
        break; 
       fflush (stin) ;
       } 
       return 0; 
      }
      void show (FRIEND f[ ], int size) 
      { 
      int i;
      for (i=0;i<size; i++) { 
      Cout<<"======================" <<endl;
      cout<<f[i].name<<的電話:"<<f[i].phone<<endl;
      cout<<f[i] name<<"的生日: <<f[i].birth<<endl; 
      }
      cout<<"===================== " <<endl; 
      } 
      FRIEND enter (void)
      {
      FRIEND newFriend;
      cout<<"請輸入名稱:";
      cin>>newFriend.name;
      cout<<"請輸入電話號碼:";
      cin>>newFriend.phone;
      cout<<"請輸入生日:";
      cin>>newFriend.birth;
      return newFriend;
      }

小練習(印出聯合的內容程式):

#include <iostream>
using namespace std;
union my_union {
    int a;
    char b;
    double c;
};
int main ()
{
    union my_union u1;
    i1.a =65;
    cout<<u1.a<<u1.b<<" "<<u1.c;
    return 0;
}

小練習(列舉的內容程式):

#include <iostream>
using namespace std;
enum Season{
    Spring,
    Summer,
    Fall,
    Winter,
};
int main(){
    Season season;
    season=Summer;
    switch(season){
        case Spring:
        cout<<" warm outside"<<endl;
        break;
        case Summer:
        cout<<" hot outside"<<endl;
        break;
        case Fall:
        cout<<" cool outside"<<endl;
        break;
        case Winter:
        cout<<" cold outside"<<endl;
        break;
  }
  return 0;
 }

!!以上內容是跟著第一次學C++就上手第二版第11章跟著練習實作!!
明天會說明到typedef指令跟程式實作練習~希望一切順利完成囉


上一篇
Day 13 前置處理器
下一篇
Day 15 基本程式練習實作
系列文
C++探險家30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言