在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

C語言基礎(chǔ)語法之結(jié)構(gòu)體

電子工程師 ? 來源:未知 ? 作者:胡薇 ? 2018-11-08 08:35 ? 次閱讀

C語言中的數(shù)組只能允許程序員定義存儲(chǔ)相同類型數(shù)據(jù)。但是結(jié)構(gòu)是C語言編程中允許您存儲(chǔ)不同數(shù)據(jù)類型的數(shù)據(jù)。

結(jié)構(gòu)體的定義

要想定義結(jié)構(gòu),必須用到struct關(guān)鍵字,struct的語句格式:

在struct 中聲明了一個(gè)含有若干新成員的數(shù)據(jù)類型。

tag是結(jié)構(gòu)體標(biāo)簽

member-list是標(biāo)準(zhǔn)的變量定義,比如 int i; 或者 float f,或者其他有效的變量定義。

variable-list結(jié)構(gòu)變量,定義在結(jié)構(gòu)的末尾,最后一個(gè)分號之前,您可以指定一個(gè)或多個(gè)結(jié)構(gòu)變量。下面是聲明 Book 結(jié)構(gòu)的方式:

在一般情況下,tag、member-list、variable-list這 3 部分至少要出現(xiàn) 2 個(gè)。以下為實(shí)例:

在上面的聲明中,第一個(gè)和第二聲明被編譯器當(dāng)作兩個(gè)完全不同的類型,即使他們的成員列表是一樣的,如果令 t3=&s1,則是非法的。

結(jié)構(gòu)體的成員可以包含其他結(jié)構(gòu)體,也可以包含指向自己結(jié)構(gòu)體類型的指針,而通常這種指針的應(yīng)用是為了實(shí)現(xiàn)一些更高級的數(shù)據(jù)結(jié)構(gòu)如鏈表和樹等。

如果兩個(gè)結(jié)構(gòu)體互相包含,則需要對其中一個(gè)結(jié)構(gòu)體進(jìn)行不完整聲明,如下所示:

結(jié)構(gòu)體變量的初始化

和其它類型變量一樣,對結(jié)構(gòu)體變量可以在定義時(shí)指定初始值。

執(zhí)行輸出結(jié)果為:

title : C 語言author: RUNOOB subject:編程語言book_id:123456

訪問結(jié)構(gòu)成員

為了訪問結(jié)構(gòu)的成員,我們使用成員訪問運(yùn)算符(.)。成員訪問運(yùn)算符是結(jié)構(gòu)變量名稱和我們要訪問的結(jié)構(gòu)成員之間的一個(gè)句號。您可以使用struct關(guān)鍵字來定義結(jié)構(gòu)類型的變量。下面的實(shí)例演示了結(jié)構(gòu)的用法:

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

結(jié)構(gòu)作為函數(shù)參數(shù)

您可以把結(jié)構(gòu)作為函數(shù)參數(shù),傳參方式與其他類型的變量或指針類似。您可以使用上面實(shí)例中的方式來訪問結(jié)構(gòu)變量:

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

指向結(jié)構(gòu)的指針

您可以定義指向結(jié)構(gòu)的指針,方式與定義指向其他類型變量的指針相似,如下所示:

structBooks*struct_pointer;

現(xiàn)在,您可以在上述定義的指針變量中存儲(chǔ)結(jié)構(gòu)變量的地址。為了查找結(jié)構(gòu)變量的地址,請把 & 運(yùn)算符放在結(jié)構(gòu)名稱的前面,如下所示:

struct_pointer =&Book1;

為了使用指向該結(jié)構(gòu)的指針訪問結(jié)構(gòu)的成員,您必須使用 -> 運(yùn)算符,如下所示:

struct_pointer->title;

讓我們使用結(jié)構(gòu)指針來重寫上面的實(shí)例,這將有助于您理解結(jié)構(gòu)指針的概念:

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

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

    關(guān)注

    180

    文章

    7604

    瀏覽量

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

    關(guān)注

    1

    文章

    130

    瀏覽量

    10844

原文標(biāo)題:C語言中的結(jié)構(gòu)體

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    C語言中數(shù)組和結(jié)構(gòu)的內(nèi)存表示和布局

    C語言中,數(shù)組和結(jié)構(gòu)都可以代表一塊內(nèi)存,但為什么結(jié)構(gòu)可以直接賦值,而數(shù)組不可以?這個(gè)問題涉及
    發(fā)表于 08-28 10:54 ?1615次閱讀

    C語言循環(huán)結(jié)構(gòu)的使用方法

    詳細(xì)介紹了C語言while循環(huán)結(jié)構(gòu)、do-while循環(huán)結(jié)構(gòu)、for循環(huán)結(jié)構(gòu)、循環(huán)退出語句的語法
    發(fā)表于 11-02 11:26 ?1790次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>循環(huán)<b class='flag-5'>結(jié)構(gòu)</b>的使用方法

    C語言結(jié)構(gòu)史上最詳細(xì)的講解【軟件干貨】

    struct結(jié)構(gòu)數(shù)據(jù)類型 前言 我們知道,在C語言中有一些基本的數(shù)據(jù)類型,如?char?int?float?long?double?string(
    的頭像 發(fā)表于 03-28 17:52 ?763次閱讀

    漫談C語言結(jié)構(gòu)

      相信大家對于結(jié)構(gòu)都不陌生。在此,分享出本人對c語言結(jié)構(gòu)的學(xué)習(xí)心得。如果你發(fā)現(xiàn)這個(gè)總結(jié)中有
    發(fā)表于 11-15 15:59

    【干貨】c語言基礎(chǔ)語法——結(jié)構(gòu)

    1、關(guān)于C語言結(jié)構(gòu)的引入在實(shí)際問題中有時(shí)候我們需要幾種數(shù)據(jù)類型一起來修飾某個(gè)變量。例如一個(gè)學(xué)生的信息就需要學(xué)號(字符串),姓名(字符串),年齡(整形)等等。這些數(shù)據(jù)類型都不同但是他們
    發(fā)表于 06-03 17:10

    結(jié)構(gòu)與共用的區(qū)別

    語言中,還有另外一種和結(jié)構(gòu)非常類似的語法,叫做共用(Union),它的定義格式為:union 共用
    發(fā)表于 07-20 06:57

    struct結(jié)構(gòu)的基本語法

    1. struct 結(jié)構(gòu)  基本語法  struct myabc{        unsigned int a;        unsigned int b;        unsignedint
    發(fā)表于 12-15 09:25

    怎樣去使用C語言結(jié)構(gòu)和共用

    C語言結(jié)構(gòu)和共用分別有何特點(diǎn)呢?怎樣去使用C語言
    發(fā)表于 01-17 07:51

    嵌入式C語言中的union語法的作用是什么

    C語言中的結(jié)構(gòu)語法是非常重要,也是非常有用的,相信看了最近幾節(jié)的讀者應(yīng)該明白。事實(shí)上,在實(shí)際的C
    發(fā)表于 08-29 17:10 ?1849次閱讀

    C語言結(jié)構(gòu)的聲明與定義

    我們剛剛申請了一個(gè)名叫Info的結(jié)構(gòu)類型,那么理論上我們可以像聲明其他變量的操作一樣,去聲明我們的結(jié)構(gòu)體操作,但是C語言中規(guī)定,聲明
    的頭像 發(fā)表于 07-09 09:06 ?7510次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>之<b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>體</b>的聲明與定義

    Prel語法C語言語法的異同綜述

    Prel語法C語言語法的異同綜述
    發(fā)表于 05-25 11:44 ?6次下載

    C語言-結(jié)構(gòu)與位域

    C語言里的結(jié)構(gòu)是可以包含不同數(shù)據(jù)類型和相同數(shù)據(jù)類型的一個(gè)有序集合,屬于構(gòu)造類型,可以自己任意組合,并且結(jié)構(gòu)
    的頭像 發(fā)表于 08-14 10:06 ?1710次閱讀

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

    C語言中,指向結(jié)構(gòu)對象的指針變量既可以指向結(jié)構(gòu)變量,也可指向
    的頭像 發(fā)表于 03-24 14:59 ?1058次閱讀

    C語言結(jié)構(gòu)完全筆記

    我們剛剛申請了一個(gè)名叫Info的結(jié)構(gòu)類型,那么理論上我們可以像聲明其他變量的操作一樣,去聲明我們的結(jié)構(gòu)體操作,但是C語言中規(guī)定,聲明
    的頭像 發(fā)表于 08-01 16:52 ?615次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>體</b>完全筆記

    C語言C++中結(jié)構(gòu)的區(qū)別

    同樣是結(jié)構(gòu),看看在C語言C++中有什么區(qū)別?
    的頭像 發(fā)表于 10-30 15:11 ?228次閱讀
    主站蜘蛛池模板: 黄色大片视频网站| 伊人久久大香线蕉综合亚洲| 亚洲永久免费视频| 久久黄色网| 免费看男女下面日出水视频| 天天摸天天碰中文字幕| 国产三级日产三级韩国三级| 久久天天躁狠狠躁夜夜2020一| 深夜福利欧美| 欧美人与禽交| 天堂中文资源在线地址| 亚洲福利秒拍一区二区| 性做久久久久久久免费观看| 色五夜婷婷| 最色网在线观看| 黄色hd| 色婷婷免费视频| 亚洲免费福利视频| 午夜三级网站| 免费一级毛片私人影院a行| 奇米网狠狠干| 主人扒开腿揉捏花蒂调教cfh| 久久综合一| 午夜视频免费国产在线| 38pao强力打造永久免费高清视频| 色综合久久综合| 午夜影视体验区| 美女扒开尿口给男人捅| 美女一区二区三区| 在线色资源| 污污的网站免费阅读| 美女拍拍拍爽爽爽爽爽爽| 欧美屁屁影院| 亚洲成综合人影院在院播放| 国内一级野外a一级毛片| 999久久精品国产| 色婷婷色综合缴情在线| 手机看片国产在线| 亚洲最新在线| 亚洲久久久| 自拍偷自拍亚洲精品被多人伦好爽 |