c語言的結構體詳解

2021-07-10 05:36:45 字數 1074 閱讀 6272



什麼是結構體?

簡單的來說,結構體就是乙個可以包含不同資料型別的乙個結構,它是一種可以自己定義的資料型別,它的特點和陣列主要有兩點不同,首先結構體可以在乙個結構中宣告不同的資料型別,第二相同結構的結構體變數是可以相互賦值的,而陣列是做不到的,因為陣列是單一資料型別的資料集合,它本身不是資料型別(而結構體是),陣列名稱是常量指標,所以不可以做為左值進行運算,所以陣列之間就不能通過陣列名稱相互複製了,即使資料型別和陣列大小完全相同。

定義結構體使用suct修飾符,例如:

suct test

;上面的**就定義了乙個名為test的結構體,它的資料型別就是test,它包含兩個成員a和b,成員a的資料型別為浮點型,成員b的資料型別為整型。

由於結構體本身就是自定義的資料型別,定義結構體變數的方法和定義普通變數的方法一樣。

test pn1;

這樣就定義了一test結構體資料型別的結構體變數pn1,結構體成員的訪問通過點操作符進行,pn1.a=10 就對結構體變數pn1的成員a進行了賦值操作。

注意:結構體生命的時候本身不占用任何記憶體空間,只有當你用你定義的結構體型別定義結構體變數的時候計算機才會分配記憶體。

結構體,同樣是可以定義指標的,那麼結構體指標就叫做結構指標。

結構指標通過->符號來訪問成員,下面我們就以上所說的看乙個完整的例子:

#include

#include

using namespace s;

suct test//定義乙個名為test的結構體

;void main()

{test pn1;//定義結構體變數pn1

test pn2;//定義結構體變數pn2

pn2.a=10;//通過成員操作符.給結構體變數pn2中的成員a賦值

pn2.b=3;//通過成員操作符.給結構體變數pn2中的成員b賦值

pn1=pn2;//把pn2中所有的成員值複製給具有相同結構的結構體變數pn1

cout<<"|"<

test *point;//定義結構指標

point=&pn2;//指標指向結構體變數pn2的記憶體位址

cout<<"|"cout<<"|"<

C語言詳解 結構體

1.什麼是結構體?結構體是一種工具,用這個工具可以定義自己的資料型別。2.結構體與陣列的比較 1 都由多個元素組成 2 各個元素在記憶體中的儲存空間是連續的 3 陣列中各個元素的資料型別相同,而結構體中的各個元素的資料型別可以不相同 3.結構體的定義和使用 1 一般形式 struct 結構體名 st...

C語言的結構體詳解

結構體 struct 1 定義 一般格式為 struct 結構名 結構變數 結構名是結構的識別符號不是變數名。下面舉乙個例子來說明怎樣定義結構變數。struct string person 這個例子定義了乙個結構名為string的結構變數person,如果省略變數名 person,則變成對結構的申明...

結構體指標,C語言結構體指標詳解

結構體指標,可細分為指向結構體變數的指標和指向結構體陣列的指標。前面我們通過 結構體變數名.成員名 的方式引用結構體變數中的成員,除了這種方法之外還可以使用指標。前面講過,student1 表示結構體變數 student1 的首位址,即 student1 第乙個項的位址。如果定義乙個指標變數 p 指...