欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言結(jié)構(gòu)體定義的方法匯總

 更新時間:2017年12月11日 11:49:11   作者:Griouges  
結(jié)構(gòu)體是一種工具,用這個工具可以定義自己的數(shù)據(jù)類型。下面通過本文給大家分享了C語言結(jié)構(gòu)體定義的方法匯總,需要的朋友參考下吧

什么是結(jié)構(gòu)體?

在C語言中,結(jié)構(gòu)體(struct)指的是一種數(shù)據(jù)結(jié)構(gòu),是C語言中聚合數(shù)據(jù)類型(aggregate data type)的一類。結(jié)構(gòu)體可以被聲明為變量、指針或數(shù)組等,用以實現(xiàn)較復雜的數(shù)據(jù)結(jié)構(gòu)。結(jié)構(gòu)體同時也是一些元素的集合,這些元素稱為結(jié)構(gòu)體的成員(member),且這些成員可以為不同的類型,成員一般用名字訪問。

結(jié)構(gòu)體與數(shù)組的比較

(1) 都由多個元素組成

(2) 各個元素在內(nèi)存中的存儲空間是連續(xù)的

(3) 數(shù)組中各個元素的數(shù)據(jù)類型相同,而結(jié)構(gòu)體中的各個元素的數(shù)據(jù)類型可以不相同

結(jié)構(gòu)體的定義:

C語言結(jié)構(gòu)體類型的定義模板大概為:

struct 類型名{
  成員表列
} 變量;

在成員表列中可以是幾種基本數(shù)據(jù)類型,也可以是結(jié)構(gòu)體類型。

struct 類型名{} 變量;后的分號不能漏

下面給出定義結(jié)構(gòu)體類型的幾種方法

1. 先定義結(jié)構(gòu)體類型,再定義結(jié)構(gòu)體變量。

struct student{
  char no[20];    //學號
  char name[20];  //姓名
   char sex[5];  //性別
  int age;     //年齡
};       
struct student stu1,stu2;
//此時stu1,stu2為student結(jié)構(gòu)體變量

2. 定義結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量。

struct student{
  char no[20];    //學號
  char name[20];   //姓名
   char sex[5];   //性別
  int age;      //年齡
} stu1,stu2;   

此時還可以繼續(xù)定義student結(jié)構(gòu)體變量如:

struct student stu3;

3.直接定義結(jié)構(gòu)體變量。

struct{
  char no[20];    //學號
  char name[20];   //姓名
   char sex[5];   //性別
  int age;     //年齡
} stu1,stu2; 

一般不會使用第三種定義方法,因為直接定義結(jié)構(gòu)體變量stu1,stu2后就不能再繼續(xù)定義該類型的變量。

注意:

在C語言中使用struct定義結(jié)構(gòu)體類型后定義結(jié)構(gòu)體變量時struct不能省略,在C++中允許省略struct。

在c中:

struct student{
...
};
struct student stu1;  //struct不可省略

在c++中:

struct student{
...
};
student stu1;  //struct可省略

在C中定義結(jié)構(gòu)體類型后每次定義變量時都要使用struct,如果嫌麻煩,我們可以這樣:

typedef struct student{
...
}STUDENT;
STUDENT stu1;

使用typedef給struct student取一個"別名"STUDENT

在某些情況下還可以使用#define來實現(xiàn)更簡化的結(jié)構(gòu)體定義與變量的定義,但可能會犧牲部分可讀性。

#define STUDENT struct student;
STUDENT{
...
};
STUDENT stu1;

typedef和#define用法不同,甚至可以結(jié)合起來靈活使用,使用時一定要注意兩者的不同之處。

總結(jié)

以上所述是小編給大家介紹的C語言結(jié)構(gòu)體定義的方法匯總,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • C++構(gòu)造函數(shù)的初始化列表詳解

    C++構(gòu)造函數(shù)的初始化列表詳解

    這篇文章主要為大家介紹了C++構(gòu)造函數(shù)的初始化列表,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • C++數(shù)據(jù)結(jié)構(gòu)之單鏈表

    C++數(shù)據(jù)結(jié)構(gòu)之單鏈表

    這篇文章主要介紹了C++數(shù)據(jù)結(jié)構(gòu)之單鏈表,鏈表是由一個個結(jié)點鏈結(jié)成的。結(jié)點包括數(shù)據(jù)域和指針域兩部分,數(shù)據(jù)域用來存儲數(shù)據(jù)元素的信息,指針域用來存儲下一個結(jié)點的地址,更詳細內(nèi)容請需要的小伙伴參考下面文章內(nèi)容
    2022-01-01
  • c語言_構(gòu)建一個靜態(tài)二叉樹實現(xiàn)方法

    c語言_構(gòu)建一個靜態(tài)二叉樹實現(xiàn)方法

    下面小編就為大家?guī)硪黄猚語言_構(gòu)建一個靜態(tài)二叉樹實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 用c語言根據(jù)可變參數(shù)合成字符串的實現(xiàn)代碼

    用c語言根據(jù)可變參數(shù)合成字符串的實現(xiàn)代碼

    本篇文章是對用c語言根據(jù)可變參數(shù)合成字符串的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++二叉搜索樹模擬實現(xiàn)示例

    C++二叉搜索樹模擬實現(xiàn)示例

    本文主要介紹了C++二叉搜索樹模擬實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-11-11
  • C++類常量和類枚舉

    C++類常量和類枚舉

    這篇文章主要介紹了C++類常量和類枚舉,給類當中定義一些常量,可以給所有類的對象使用,比如說我們在類當中定義一個數(shù)組,希望可以定義一個常量,用來初始化數(shù)組的長度,那么下面我i嗎就來看看過程當如何吧
    2022-01-01
  • C語言完全平方整數(shù)的判斷

    C語言完全平方整數(shù)的判斷

    大家好,本篇文章主要講的是C語言完全平方整數(shù)的判斷,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C語言實現(xiàn)快速排序的方法及優(yōu)化

    C語言實現(xiàn)快速排序的方法及優(yōu)化

    這篇文章主要介紹了C語言實現(xiàn)快速排序的方法及優(yōu)化,快速排序是Hoare于1962年提出的一種二叉樹結(jié)構(gòu)的交換排序方法,下面我們來看一看傳說中的快速排序的特點與效率怎么樣,需要的朋友可以參考下
    2023-07-07
  • C++實現(xiàn)LeetCode(210.課程清單之二)

    C++實現(xiàn)LeetCode(210.課程清單之二)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(210.課程清單之二),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C++類靜態(tài)成員與類靜態(tài)成員函數(shù)詳解

    C++類靜態(tài)成員與類靜態(tài)成員函數(shù)詳解

    靜態(tài)成員不可在類體內(nèi)進行賦值,因為它是被所有該類的對象所共享的。你在一個對象里給它賦值,其他對象里的該成員也會發(fā)生變化。為了避免混亂,所以不可在類體內(nèi)進行賦值
    2013-09-09

最新評論