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.什麼是結構體 當 乙個整體 由多個資料構成時,我們可以用陣列來表示這個整體,但是陣列內部的每乙個元素都必須是相同型別的資料。在實際應用中,我們通常需要由不同型別的資料來構成乙個整體,比如學生這個整體可以由姓名 年齡 身高等資料...