c 結構體怎麼用,c 裡用結構體好嗎?

2021-12-25 13:45:34 字數 2081 閱讀 3611

1樓:歐文君愛分享

結構(struct)

結構是由基本資料型別構成的、並用一個識別符號來命名的各種變數的組合。

結構中可以使用不同的資料型別。

1. 結構說明和結構變數定義

在turbo c中, 結構也是一種資料型別, 可以使用結構變數, 因此, 象其它

型別的變數一樣, 在使用結構變數時要先對其定義。

定義結構變數的一般格式為:

struct 結構名

結構變數;

結構名是結構的識別符號不是變數名。

型別為第二節中所講述的五種資料型別(整型、浮點型、字元型、指標型和

無值型)。

構成結構的每一個型別變數稱為結構成員, 它象陣列的元素一樣, 但陣列中

元素是以下標來訪問的, 而結構是按變數名字來訪問成員的。

下面舉一個例子來說明怎樣定義結構變數。

struct string

person;

這個例子定義了一個結構名為string的結構變數person, 如果省略變數名

person, 則變成對結構的說明。用已說明的結構名也可定義結構變數。這樣定義

時上例變成:

struct string

; struct string person;

如果需要定義多個具有相同形式的結構變數時用這種方法比較方便, 它先作

結構說明, 再用結構名來定義變數。

例如:struct string tianyr, liuqi, ...;

如果省略結構名, 則稱之為無名結構, 這種情況常常出現在函式內部, 用這

種結構時前面的例子變成:

struct

tianyr, liuqi;

2. 結構變數的使用

結構是一個新的資料型別, 因此結構變數也可以象其它型別的變數一樣賦值、

運算, 不同的是結構變數以成員作為基本變數。

2樓:匿名使用者

和類的用法完全一樣, 唯一的區別是裡面的變數和函式預設是public的, 可以隨便訪問.

3樓:匿名使用者

struct 結構體名;

c++裡用結構體好嗎?

4樓:飄渺世間天

沒有什麼大的區別,c++中加入結構體是為了向c相容,而結構在c++中作為類的方式來操作的話(比如加入成員函式),其實它就是個預設為public訪問許可權的類了,而如果你把它用做c的結構的話它就是一般的結構。

二者的不同在c++中(當然c中沒有class)唯一表現在訪問許可權上,所以如果你並非想用到類的特性的話你就應該使用結構,但是這並不是一個強制條件,你可以使用struct定義完全公有的資料和函式成員(比如標準庫裡的pair),也可以用struct來定義private成員模擬類操作。

一般使用結構強調的就是公有,而class強調的是封裝,所以原則上如果你不需要對資料進行封裝的話你就可以優先選擇struct而不是class,反之亦然。

5樓:論宇之新宇宙觀

看你的程式需要,結構體有其優點,也有缺點。

6樓:無語翹楚

在c語言中,可以定義結構體型別,將多個相關的變數包裝成為一個整體使用。在結構體中的變數,可以是相同、部分相同,或完全不同的資料型別。在c語言中,結構體不能包含函式。

在物件導向的程式設計中,物件具有狀態(屬性)和行為,狀態儲存在成員變數中,行為通過成員方法(函式)來實現。c語言中的結構體只能描述一個物件的狀態,不能描述一個物件的行為。在c++中,考慮到c語言到c++語言過渡的連續性,對結構體進行了擴充套件,c++的結構體可以包含函式,這樣,c++的結構體也具有類的功能,與class不同的是,結構體包含的函式預設為public,而不是private

結構體的一些性質和作用:

結構體和其他型別基礎資料型別一樣,例如int型別,char型別 只不過結構體可以做成你想要的資料型別。以方便日後的使用。

在專案中,結構體是大量存在的。研發人員常使用結構體來封裝一些屬性來組成新的型別。

結構體在函式中的作用不是簡便,其最主要的作用就是封裝。封裝的好處就是可以再次利用。讓使用者不必關心這個是什麼,只要根據定義使用就可以了。

c語言結構體的定義及使用,C語言 結構體的定義及使用

額 你的初始化有錯誤 yinkailin.name yinkailin 這樣初始化是不行滴 加標頭檔案 include 然後這樣初始化 strcpy yinkailin.name,yinkailin 不是結構體的問題,是陣列的問題 char name tom 正確 定義並初始化char name 2...

c語言結構指標和結構體成員指標問題

既是取地址符號,一個指標p指向q就需要寫作p q,在函式引數裡是 引用 就是別名,類似指標了,這種情況下對變數的修改會影響到函式外的原變數。那個printf a p n a 等於求出地址 x然後作為指標看待 p 所以也是yyyy了 樓主可以做個試驗,看看輸出結果地址間的關係,你就應該可以理解了 in...

C 結構體中的指標轉換成c型別

先定義出對應c 型別的c 結構體 public struct user group tpublic struct user group list泛型函式實現轉換功能 public static listmarshalptrtostructarray intptr p,int count return...