0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語言入門之結(jié)構(gòu)體指針

jf_78858299 ? 來源:C語言入門到精通 ? 作者:閆小林 ? 2023-03-24 14:59 ? 次閱讀

C語言中,指向結(jié)構(gòu)體對(duì)象的指針變量既可以指向結(jié)構(gòu)體變量,也可指向結(jié)構(gòu)體數(shù)組中的元素。

指針變量的基類型必須與結(jié)構(gòu)體變量的類型相同。

C語言中允許
(*p).num用p->num來代替
->代表一個(gè)箭頭
p->num表示p所指向的結(jié)構(gòu)體變量中的num成員

C語言指向結(jié)構(gòu)體數(shù)組的指針

(++p)->num

先使p自加1,然后得到p指向的元素中的num成員值。

(p++)->num

先求的p->num的值,然后再使p自加1。

C語言用結(jié)構(gòu)體變量和結(jié)構(gòu)體變量的指針作函數(shù)參數(shù)

用結(jié)構(gòu)體變量的成員作參數(shù),用法和用普通變量作實(shí)參是一樣的,屬于“值傳遞”方式。應(yīng)當(dāng)注意實(shí)參與形參的類型保持一致。

用結(jié)構(gòu)體變量作實(shí)參。用結(jié)構(gòu)體變量作實(shí)參時(shí),采取的也是“值傳遞”的方式,將結(jié)構(gòu)體變量所占的內(nèi)存單元的內(nèi)容全部按順序傳遞給形參,形參也必須是同類型的結(jié)構(gòu)體變量。

用指向結(jié)構(gòu)體變量(或數(shù)組元素)的指針作實(shí)參,將結(jié)構(gòu)體變量的地址傳給形參。

C語言使用結(jié)構(gòu)體指針輸出生日

#include
#include
struct Age
{

int year;
int month;
int day;
};
struct Student
{

char name[20];//姓名
struct Age birthday; //生日
};
int main(void)
{
struct Student student1; //定義結(jié)構(gòu)體變量student1
struct Student *point =NULL; //定義一個(gè)指向Student結(jié)構(gòu)體類型的指針變量point
point = &student1;//point指向結(jié)構(gòu)體變量student1的首地址, 即第一個(gè)成員的地址
strcpy((*point ).name,"閆小林");//(*point).name等價(jià)于student1.name
(*point ).birthday.year =1989;
(*point ).birthday.month =4;
(*point ).birthday.day =29;
printf("姓名:%s\\n", (*point ).name);//(*point).name不能寫成point
printf("生日:%d-%d-%d\\n", (*point).birthday.year, (*point).birthday.month, (*point).birthday.day);
return 0;
}

編譯運(yùn)行結(jié)果:

姓名:閆小林
生日:1989-4-29

--------------------------------
Process exited after0.04992 secondswith return value0
請(qǐng)按任意鍵繼續(xù). . .
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7575

    瀏覽量

    134046
  • 指針
    +關(guān)注

    關(guān)注

    1

    文章

    475

    瀏覽量

    70457
  • 結(jié)構(gòu)體
    +關(guān)注

    關(guān)注

    1

    文章

    127

    瀏覽量

    10800
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語言結(jié)構(gòu)組及指針問題

    --結(jié)構(gòu)組 extern idata struct msg *CurSetPara;//指向結(jié)構(gòu)指針 這兩句中,變量類型extern
    發(fā)表于 04-18 16:49

    C語言指針結(jié)構(gòu)方面比較好的書籍或者視頻

    C語言指針結(jié)構(gòu)方面比較好的書籍或者視頻,望各位大神提些好的建議
    發(fā)表于 05-11 21:33

    單片機(jī)C語言 -- 基于結(jié)構(gòu)的面向?qū)ο缶幊碳记?/a>

    1、Keil4 C51工程網(wǎng)址:2、需要一定的C語言基礎(chǔ),才看得懂此文。一、面向?qū)ο髥纹瑱C(jī)C語言的面向?qū)ο缶幊?,是利?/div>
    發(fā)表于 02-04 21:48

    C語言結(jié)構(gòu)對(duì)函數(shù)指針封裝示例

    C語言結(jié)構(gòu)對(duì)函數(shù)指針封裝示例示例:#include int i, j;struct DATE{ int year; char month;
    發(fā)表于 07-15 06:18

    如何寫單片機(jī)的C語言結(jié)構(gòu)

    摘要:聽說還有好多學(xué)單片機(jī)的小伙伴不會(huì)用結(jié)構(gòu)指針結(jié)構(gòu)是學(xué)單片機(jī)必須要掌握的,如果你C
    發(fā)表于 12-03 07:11

    C語言中的結(jié)構(gòu)指針在訪問的時(shí)候怎么讀取成員變量的數(shù)據(jù)?

    C語言中的結(jié)構(gòu)指針在訪問的時(shí)候怎么讀取成員變量的數(shù)據(jù)
    發(fā)表于 10-10 07:07

    C語言入門教程-指針

    指針C語言中,指針被廣泛使用。所以要想完整地掌握C語言,您需要對(duì)
    發(fā)表于 07-29 11:30 ?636次閱讀

    C語言入門教程-指向結(jié)構(gòu)指針

    指向結(jié)構(gòu)指針C語言中幾乎可以創(chuàng)建指向任何類型的指針,包括用戶自定義的類型。創(chuàng)建
    發(fā)表于 07-29 12:04 ?3122次閱讀

    C語言入門教程-用指針操作數(shù)組

    C語言入門教程 在C語言中,數(shù)組與指針的關(guān)系十分密切。要想有效地使用數(shù)組,您需懂得如何借助
    發(fā)表于 07-29 12:18 ?1462次閱讀

    C語言指針電子教程

    本資料是一份不錯(cuò)的關(guān)于C語言指針的電子教程,希望對(duì)大家有所幫助... 指針簡(jiǎn)介 指針C
    發(fā)表于 07-30 16:00 ?77次下載

    C語言入門教程之C語言其實(shí)很簡(jiǎn)單的PPT課件資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語言入門教程之C語言其實(shí)很簡(jiǎn)單的PPT課件資料免費(fèi)下載包括了:概述,數(shù)據(jù)類型運(yùn)算符和表達(dá)式,順序
    發(fā)表于 06-03 08:00 ?11次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>入門</b>教程之<b class='flag-5'>C</b><b class='flag-5'>語言</b>其實(shí)很簡(jiǎn)單的PPT課件資料免費(fèi)下載

    嵌入式C語言指針、函數(shù)概念、結(jié)構(gòu)遞歸三大挑戰(zhàn)

    指針直接對(duì)接內(nèi)存結(jié)構(gòu),常見的C語言里面的指針亂指,數(shù)組越界根本原因就是內(nèi)存問題。在指針這個(gè)點(diǎn)有無
    發(fā)表于 01-12 11:16 ?389次閱讀

    C程序設(shè)計(jì)入門筆記數(shù)組與結(jié)構(gòu)

    數(shù)組,結(jié)構(gòu)指針C語言里面最難的部分,如果在編程中可以熟練的運(yùn)用這三樣工具,會(huì)大大地提高開發(fā)效率,簡(jiǎn)化程序
    的頭像 發(fā)表于 03-02 10:13 ?507次閱讀
    <b class='flag-5'>C</b>程序設(shè)計(jì)<b class='flag-5'>入門</b>筆記<b class='flag-5'>之</b>數(shù)組與<b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>體</b>

    詳解C語言指針底層基本原理

    說到指針,估計(jì)還是有很多小伙伴都還是云里霧里的,有點(diǎn)“知其然,而不知其所以然”。但是,不得不說,學(xué)了指針,C語言才能算是入門了。
    的頭像 發(fā)表于 04-06 10:43 ?1120次閱讀

    結(jié)構(gòu)指針的關(guān)系

    C語言中,結(jié)構(gòu)(Struct)是一種用戶自定義的數(shù)據(jù)類型,它允許您將不同類型的數(shù)據(jù)項(xiàng)組合在一起,以便形成一個(gè)更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。
    的頭像 發(fā)表于 01-11 08:00 ?767次閱讀
    <b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>體</b>與<b class='flag-5'>指針</b>的關(guān)系