版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
在本教程中,我們將學(xué)習(xí)在C編程語言中使用帶有結(jié)構(gòu)體變量數(shù)組的指針。因此,在之前的教程中,我們學(xué)習(xí)了如何為結(jié)構(gòu)體變量創(chuàng)建指針?,F(xiàn)在讓我們繼續(xù)創(chuàng)建一個結(jié)構(gòu)變量數(shù)組并通過指針變量使用它。創(chuàng)建結(jié)構(gòu)體變量數(shù)組在下面的示例中,我們考慮student在上一個教程中創(chuàng)建的結(jié)構(gòu),并創(chuàng)建一個std大小為3的學(xué)生結(jié)構(gòu)變量數(shù)組來保存三個學(xué)生的詳細(xì)信息。//
student
structurestruct
student
{
char
id[15];
char
firstname[64];
char
lastname[64];
float
points;};//
student
structure
variablestruct
student
std[3];我們可以將std數(shù)組變量表示如下。為結(jié)構(gòu)體創(chuàng)建指針變量現(xiàn)在我們將創(chuàng)建一個指針變量,它將保存學(xué)生結(jié)構(gòu)變量std的起始地址。//
student
structure
pointer
variablestruct
student
*ptr
=
NULL;//
assign
std
to
ptrptr
=
std;筆記!std是一個數(shù)組變量,數(shù)組變量的名稱指向內(nèi)存位置,因此,我們將其分配給結(jié)構(gòu)體指針變量ptr。通過指針訪問結(jié)構(gòu)體數(shù)組變量的每個元素為此,我們首先將指針變量設(shè)置ptr為指向std變量的起始內(nèi)存位置。為此我們寫了ptr=std;.然后,我們可以使用增量運算符來遞增指針變量ptr++,使指針指向結(jié)構(gòu)體數(shù)組變量的下一個元素,即從str[0]到str[1]。因為有三個學(xué)生,所以我們將循環(huán)三遍。因此,我們將指針變量遞增兩次。第一個增量將指針ptr從std[0]移動到std[1],第二個增量將指針ptr從std[1]移動到std[2]。為了重置指針變量ptr以指向std我們編寫的結(jié)構(gòu)變量的起始內(nèi)存位置ptr=std;。完整代碼#include
<stdio.h>int
main(void)
{
//
student
structure
struct
student
{
char
id[15];
char
firstname[64];
char
lastname[64];
float
points;
};
//
student
structure
variable
struct
student
std[3];
//
student
structure
pointer
variable
struct
student
*ptr
=
NULL;
//
other
variables
int
i;
//
assign
std
to
ptr
ptr
=
std;
//
get
detail
for
user
for
(i
=
0;
i
<
3;
i++)
{
printf("Enter
detail
of
student
#%d
",
(i
+
1));
printf("Enter
ID:
");
scanf("%s",
ptr->id);
printf("Enter
first
name:
");
scanf("%s",
ptr->firstname);
printf("Enter
last
name:
");
scanf("%s",
ptr->lastname);
printf("Enter
Points:
");
scanf("%f",
&ptr->points);
//
update
pointer
to
point
at
next
element
//
of
the
array
std
ptr++;
}
//
reset
pointer
back
to
the
starting
//
address
of
std
array
ptr
=
std;
for
(i
=
0;
i
<
3;
i++)
{
printf("
Detail
of
student
#%d
",
(i
+
1));
//
display
result
via
std
variable
printf("
Result
via
std
");
printf("ID:
%s
",
std[i].id);
printf("First
Name:
%s
",
std[i].firstname);
printf("Last
Name:
%s
",
std[i].lastname);
printf("Points:
%f
",
std[i].points);
//
display
result
via
ptr
variable
printf("
Result
via
ptr
");
printf("ID:
%s
",
ptr->id);
printf("First
Name:
%s
",
ptr->firstname);
printf("Last
Name:
%s
",
ptr->lastname);
printf("Points:
%f
",
ptr->points);
//
update
pointer
to
point
at
next
element
//
of
the
array
std
ptr++;
}
return
0;}輸出:Enter
detail
of
student
#1Enter
ID:
s01Enter
first
name:
YusufEnter
last
name:
ShakeelEnter
Points:
8Enter
detail
of
student
#2Enter
ID:
s02Enter
first
name:
JaneEnter
last
name:
DoeEnter
Points:
9Enter
detail
of
student
#3Enter
ID:
s03Enter
first
name:
JohnEnter
last
name:
DoeEnter
Points:
6Detail
of
student
#1Result
via
stdID:
s01First
Name:
YusufLast
Name:
ShakeelPoints:
8.000000Result
via
ptrID:
s01First
Name:
YusufLast
Name:
ShakeelPoints:
8.000000Detail
of
student
#2Result
via
stdID:
s02First
Name:
JaneLast
Name:
DoePoints:
9.000000Result
via
ptrID:
s02First
Name:
JaneLast
Name:
DoePoints:
9.000000Detail
of
student
#3Result
via
stdID:
s03First
Name:
JohnLast
Name:
DoePoints:
6.000000Result
via
ptrID:
s03First
Name:
JohnLast
Name:
DoePoints:
6.000000我們可以std如下表示內(nèi)存中的數(shù)組變量。注意事項!每個學(xué)生數(shù)據(jù)占用147字節(jié)的內(nèi)存。成員數(shù)據(jù)類型尺寸ID字符15字節(jié)名字符64字節(jié)姓字符64字節(jié)點漂浮4字節(jié)數(shù)組大小為3,總共147x3,即441字節(jié)分配給std數(shù)組變量。第一個元素std[0]獲取從1000到1146的內(nèi)存位置。第二個元素std[1]獲取從1147到1293的內(nèi)存位置。第三個元素std[2]獲取從1294到1440
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 促銷活動廣告語
- 企業(yè)開展“強素質(zhì)樹形象”活動情況小結(jié)
- 中秋節(jié)日的慰問信(17篇)
- 中學(xué)秋季開學(xué)典禮活動主持詞范文(8篇)
- 中秋佳節(jié)的活動主持詞范文(5篇)
- DB12-T 1071-2021 氟骨癥現(xiàn)癥病人隨訪管理規(guī)范
- 影響粉末靜電噴涂質(zhì)量的諸多因素
- 耐火材料 高溫耐壓強度試驗方法 征求意見稿
- 戈雅課件教學(xué)課件
- 八年級上學(xué)期語文第二次月考考試卷
- 婦產(chǎn)科臨床路徑分析:優(yōu)化醫(yī)療流程
- 2023四年級學(xué)生勞動素養(yǎng)考試試題
- 《航空法規(guī)全》課件
- 電力電纜線路 電纜排管敷設(shè)(建筑電氣施工)
- 綜合實踐活動課《早餐與健康》優(yōu)質(zhì)課件
- 爆破安全工作總結(jié)
- 物業(yè)保安、保潔項目投標(biāo)書
- 眼視光學(xué):專業(yè)職業(yè)生涯規(guī)劃
- 預(yù)防母嬰傳播培訓(xùn)
- 房屋改造方案可行性分析報告
- 2024年電子維修培訓(xùn)資料
評論
0/150
提交評論