C語言結構體與結構體指標的使用

2021-10-08 23:01:46 字數 3310 閱讀 3233

c語言結構體(struct)是由一系列具有相同型別或不同型別的資料構成的資料集合。說的通俗一點就是乙個集合。c語言是一門面向過程的程式語言,而結構體的使用在某些層次上跟物件導向有點異曲同工之處了。下面回歸正題,學習一下結構體以及結構體指標的知識。

一、結構體變數的定義和初始化

1、首先我們來看一下結構體的定義

struct 結構體名	;

//不要漏掉這裡的分號!

//結構體的定義

struct student

;

在這裡我們要區別一下結構體名和變數名,結構體名是一種型別,不能被當成變數名來使用變數名宣告方法:1)struct 結構體名 結構體變數名;2)直接在定義結構體的時候新增變數名的宣告

//在main()中定義及初始化

struct student st1 =

;

//結構體的定義以及初始化

struct student

st2 =

;

//用scanf()方法對結構體變數初始化

struct student st3;

scanf

("%d %s %c"

,&st3.num,st3.name,

&st3.***)

;//對於陣列,scanf輸入的時候不用"&"

結構的變數的訪問(輸出)

printf

("%d,%s,%c\n"

, st1.num, st1.name, st1.***)

;

2.結構體陣列的定義及初始化

struct student sarr[3]

;//定義結構體陣列

//迴圈初始化

for(

int i =

0; i <

3; i++

)//測試輸出

for(

int i =

0; i <

3; i++

)

二、結構體指標的使用

1.結構體指標的定義方法

1)struct 結構體名 *指標;

2)直接在定義結構體的時候新增結構體指標的宣告

//在main()方法中定義

struct student *p1;

//定義結構體指標

struct student

*p2;

2.利用結構體指標的訪問結構體變數(輸出)結構體指標的訪問變數方法1)p->結構體成員;

2)(*p).結構體成員;

//指標訪問

struct student *p;

//定義結構體指標

p=&st1;

printf

("%d %s %c\n"

,p->num,p->name,p->***)

;

//指標訪問

struct student *p;

//定義結構體指標

p=&st1;

printf

("%d %s %c\n",(

*p).num,

(*p)

.name,

(*p)

.***)

;

看了上面的基礎知識是不是覺得比較簡單:),下面讓我們來分析一下兩個特殊的結構體指標訪問方法:)1)p->num++

2)p++ ->num

來看下面的例子

大家可以先不看注釋,猜一下輸出的結果:)

#include

#include

//定義結構體

struct student

;int

main()

;struct student *p;

//定義結構體指標

p = sarr;

//陣列本身就是位址,不用取位址

int num;

num = p->num++

;//num=p->num;p->num=p->num+1,優先順序->的優先順序高於++

printf

("num=%d,p->num=%d\n"

,num,p->num)

;//p->num上一步已經加一

num = p++

->num;

//num=p->num,p=p+1

printf

("num=%d,p->num=%d\n"

, num, p->num)

;return0;

}

下面來看看輸出的結果

看看你猜對了嘛。。。

附:c語言常見運算子優先順序

優先順序運算子含義

結合方向1

陣列下標

從左向右

()圓括號

.成員選擇(物件)

->

成員選擇(指標)2-

負號從右向左

~按位取反

++自增

--自減*取值

&取位址

!邏輯非

sizeof

資料型別長度

(型別)強制型別轉換

強制型別轉換3/

除從左向右*乘

%取模4+

加從左向右-減

5<<

左移從左向右

>>右移6

>

大於從左向右

>=

大於等於

<

小於<=

小於等於7==

等於從左向右

!=不等於

希望大家看了能夠有所收穫,加油!

tips:每一日你所付出的代價都比前一日高,因為你的生命又消短了一天,所以每一日你都要更積極。今天太寶貴,不應該為酸苦的憂慮和辛澀的悔恨所銷蝕,抬起下巴,抓住今天,它不再回來。

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

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

c語言 結構體與指標

1.建立結構體 2.結構體成員賦值方式 3.結構體與指標 4.結構體的使用,訪問成員方式 指標變數 成員名方式 pst age pst所指向的結構體變數中的age這個成員 結構體變數名.成員名方式 st.age st這個結構體變數所指向的age這個成員 include include struct ...

C語言 結構體指標

asp.net unity開發 net培訓 期待與您交流!一.結構體 1.什麼是結構體 當 乙個整體 由多個資料構成時,我們可以用陣列來表示這個整體,但是陣列內部的每乙個元素都必須是相同型別的資料。在實際應用中,我們通常需要由不同型別的資料來構成乙個整體,比如學生這個整體可以由姓名 年齡 身高等資料...