C語言 結構體 共用體和使用者自訂類型

來源:互聯網
上載者:User

標籤:自訂資料類型   core   變數   zha   arp   必須   day   聲明   標識符   

基本類型:整型、字元型、實型、雙精確度型和空值型

派生型:指標和數組

使用者構造類型

使用者定義型別:對已有的類型,另外說明一個新的類型標識符。

結構體:把具有相互關係的不同類型的資料群組成一個有機的整體

共用體:又稱聯合體,使幾種不同類型的變數共用一段儲存空間。

14.1 用typedef說明一種新類型名


typedef 類型名 標識符;

作用: 用“標識符”來代表已存在的“類型名”,並未產生新的資料類型,原有的類型名依然有效。

例如:typedef int INTERGER;

INTERGER m,n; 等價於 int m, n;

如:typedef char *CHARP;

      CHARP p; 等價於char *p;

14.2 結構體類型

如:一條學生記錄(student),包含如下資料項目:姓名(name):字串、性別(sex):字元型、出生日期(birthday):date結構體、四門課成績(SC):一維實型數組

結構體是一種構造資料類型

用途:把不同類型的資料群組合成一個整體——自訂資料類型

結構體類型的變數、數組和指標變數的定義

1.緊跟類型說明之後定義變數

struct student{    char name[20];    struct date birthday;    char sex;    int score[4];}std, pers[3], *pStd;

結構體變數中的各成員在記憶體中按說明的順序依次存放

2.聲明無名結構體時直接定義變數,即將其中的student省略掉

struct date{    int year;    int month;    int day;};struct student{    char name[20];    struct data birthday;    char sex;    int score[4]; };

結構體嵌套定義

struct student{    char name[20];    struct    {         int year;         int month;         int day;     }birthday;     char sex;     int score[4];};

3.先聲明結構體類型,再使用類型定義變數

struct student

{

…………

};

struct student std, pers[3], *pStd;

4.使用typedef重新聲明一個結構體類型名,然後用新類型名字定義變數

typedef struct{……}student;/Student 是結構體的類型的一個新名字而已,如 int char 他們一樣,不用再寫structstudent std, pers[3], *pStd;

結構體類型的變數、數組賦初值

1.結構體變數賦初值

  • 按順序在花括弧裡給對應的成員變數賦初值
  • 賦初值必須一一對應
  • 不允許跳過前面的成員變數,只給前面部分賦初值,則後面系統預設給零
struct date{    int year;    int month;    int day;};struct student{    char name[20];    char sex;    struct date birthday;    float score[4];};struct studentstd1={"Li Ming",‘M‘,1992,10,1,95.5,60,70,88.5},std2={"Liu Qiang", ‘M‘, {1995,10,1},{95.5,60,70,88.5}},std3={"Zhang Ya",‘F‘, {1995},{95.5,60}};

 

C語言 結構體 共用體和使用者自訂類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.