91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

嵌入式中C語(yǔ)言結(jié)構(gòu)體基本實(shí)現(xiàn)

嵌入式開(kāi)發(fā)星球 ? 來(lái)源:嵌入式開(kāi)發(fā)愛(ài)好者 ? 作者:嵌入式開(kāi)發(fā)愛(ài)好者 ? 2024-05-11 08:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

wKgZomY_FOKAdlRXAADOabNodfI522.jpg

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

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

wKgaomY_FOiALrYrAAAPXyHjpxk889.jpg

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

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è)分號(hào)之前,您可以指定一個(gè)或多個(gè)結(jié)構(gòu)變量。下面是聲明 Book 結(jié)構(gòu)的方式:

wKgZomY_FOiAfPaqAAAT6caiYp8080.jpg

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

wKgaomY_FOmAekIyAACIvyeggCs534.jpg

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

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

wKgZomY_FOmAYH6yAAAtJVnHt0Y154.jpg

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

wKgZomY_FOyAUffYAAA5aiH_fMg223.jpg

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

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

wKgaomY_FOyAalcjAAA_n5-kiY0451.jpg

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

title : C 語(yǔ)言
author: RUNOOB
subject: 編程語(yǔ)言
book_id: 123456

訪(fǎng)問(wèn)結(jié)構(gòu)成員

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

wKgZomY_FOyAGrojAAAcjAAmW94049.jpgwKgaomY_FO2AFMbvAAC6WbZNRz8457.jpg

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

wKgZomY_FO2AHO68AAAu7Tm_Vbg149.jpg

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

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

wKgaomY_FO2AUiGyAAAdG2Bd2d8249.jpgwKgaomY_FPOAH43wAACzal763FE391.jpg

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

wKgZomY_FPSAZGtKAAAtbFQ5RBg055.jpg

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

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

struct Books *struct_pointer;

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

struct_pointer = &Book1;

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

struct_pointer->title;

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

wKgaomY_FPSABoc6AAAejj4DcbA748.jpgwKgaomY_FPSAXiPGAAC-Cvk_3ao770.jpg

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

wKgZomY_FPWAA3ApAAAsr1-IM7c326.jpg

審核編輯 黃宇

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

    關(guān)注

    5198

    文章

    20434

    瀏覽量

    333857
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4785

    瀏覽量

    90048
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    183

    文章

    7643

    瀏覽量

    145539
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    C語(yǔ)言結(jié)構(gòu)對(duì)齊介紹

    大家好,我是嵌入式老林,從事嵌入式軟件開(kāi)發(fā)多年,今天分享的內(nèi)容是C語(yǔ)言結(jié)構(gòu)對(duì)齊介紹,希望能對(duì)你
    發(fā)表于 07-11 11:50 ?3449次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>體</b>對(duì)齊介紹

    嵌入式C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)大匯總

      學(xué)習(xí)嵌入式的基礎(chǔ)語(yǔ)言C語(yǔ)言,因此先掌握C語(yǔ)言對(duì)于后續(xù)
    發(fā)表于 11-09 07:13

    嵌入式c語(yǔ)言編程(由淺入深)

    本內(nèi)容詳細(xì)介紹了嵌入式c語(yǔ)言編程的各項(xiàng)知識(shí),包括嵌入式c語(yǔ)言編程,
    發(fā)表于 11-02 14:37 ?0次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>c</b><b class='flag-5'>語(yǔ)言</b>編程(由淺入深)

    嵌入式C語(yǔ)言結(jié)構(gòu)設(shè)計(jì)_實(shí)驗(yàn)二

    主要介紹嵌入式C語(yǔ)言結(jié)構(gòu)設(shè)計(jì),從基礎(chǔ)講起,非常合適入門(mén)
    發(fā)表于 02-22 15:45 ?2次下載

    嵌入式C_C++語(yǔ)言精華

    介紹了在嵌入式開(kāi)發(fā)的過(guò)程c語(yǔ)言C++語(yǔ)言的施用技巧。
    發(fā)表于 03-17 09:54 ?2次下載

    嵌入式外中斷c語(yǔ)言代碼

    嵌入式外中斷c語(yǔ)言代碼(arm嵌入式開(kāi)發(fā)實(shí)例)-嵌入式外中斷c
    發(fā)表于 07-30 11:29 ?5次下載
    <b class='flag-5'>嵌入式</b>外中斷<b class='flag-5'>c</b><b class='flag-5'>語(yǔ)言</b>代碼

    嵌入式C語(yǔ)言-文件操用

    嵌入式C語(yǔ)言-文件操用(嵌入式開(kāi)發(fā)需要什么證書(shū))-嵌入式C語(yǔ)
    發(fā)表于 07-30 11:56 ?15次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>-文件操用

    嵌入式底層開(kāi)發(fā)為什么選擇C語(yǔ)言

    嵌入式底層開(kāi)發(fā)為什么選擇C語(yǔ)言嵌入式系統(tǒng)的編寫(xiě)語(yǔ)言主要是C語(yǔ)
    發(fā)表于 10-20 13:35 ?2次下載
    <b class='flag-5'>嵌入式</b>底層開(kāi)發(fā)為什么選擇<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>

    標(biāo)準(zhǔn)c語(yǔ)言嵌入式,嵌入式C語(yǔ)言C語(yǔ)言的區(qū)別

    嵌入式C語(yǔ)言C語(yǔ)言的區(qū)別:最常用的系統(tǒng)編程語(yǔ)言C
    發(fā)表于 10-20 14:06 ?6次下載
    標(biāo)準(zhǔn)<b class='flag-5'>c</b><b class='flag-5'>語(yǔ)言</b>與<b class='flag-5'>嵌入式</b>,<b class='flag-5'>嵌入式</b><b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>與<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>的區(qū)別

    C語(yǔ)言嵌入式培訓(xùn) 嵌入式C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)

      學(xué)習(xí)嵌入式的基礎(chǔ)語(yǔ)言C語(yǔ)言,因此先掌握C語(yǔ)言對(duì)于后續(xù)
    發(fā)表于 11-03 21:06 ?32次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>嵌入式</b>培訓(xùn)  <b class='flag-5'>嵌入式</b><b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>程序設(shè)計(jì)基礎(chǔ)

    嵌入式C語(yǔ)言知識(shí)總結(jié)

    1 嵌入式C語(yǔ)言總結(jié)從語(yǔ)法上來(lái)說(shuō)C語(yǔ)言并不復(fù)雜, 但編寫(xiě)優(yōu)質(zhì)可靠的嵌入式
    發(fā)表于 12-20 19:44 ?12次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>知識(shí)總結(jié)

    嵌入式C語(yǔ)言結(jié)構(gòu)封裝函數(shù)詳解

    嵌入式系統(tǒng)結(jié)構(gòu)封裝函數(shù)可以用于對(duì)于嵌入式硬件資源進(jìn)行抽象和封裝,從而提高軟件的可維護(hù)性和可移植性。
    的頭像 發(fā)表于 04-14 11:50 ?2330次閱讀

    嵌入式C語(yǔ)言結(jié)構(gòu)封裝函數(shù)說(shuō)明

    嵌入式系統(tǒng)結(jié)構(gòu)封裝函數(shù)可以用于對(duì)于嵌入式硬件資源進(jìn)行抽象和封裝,從而提高軟件的可維護(hù)性和可移植性。
    發(fā)表于 05-20 15:00 ?1607次閱讀

    嵌入式C語(yǔ)言結(jié)構(gòu)特點(diǎn)

    ,不論是基于寄存器開(kāi)發(fā)還是基于庫(kù)開(kāi)發(fā),深入理解和掌握嵌入式C語(yǔ)言的函數(shù)、指針、結(jié)構(gòu)是學(xué)習(xí)STM32的關(guān)鍵。
    的頭像 發(fā)表于 11-24 16:16 ?1653次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>的<b class='flag-5'>結(jié)構(gòu)</b>特點(diǎn)

    嵌入式系統(tǒng)C語(yǔ)言結(jié)構(gòu)的基礎(chǔ)實(shí)現(xiàn)與應(yīng)用

    C語(yǔ)言中的數(shù)組只能允許程序員定義存儲(chǔ)相同類(lèi)型數(shù)據(jù)。但是結(jié)構(gòu)C語(yǔ)言編程中允許您存儲(chǔ)不同數(shù)據(jù)類(lèi)型的數(shù)據(jù)。
    發(fā)表于 03-12 14:29 ?1339次閱讀
    <b class='flag-5'>嵌入式</b>系統(tǒng)<b class='flag-5'>中</b><b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>體</b>的基礎(chǔ)<b class='flag-5'>實(shí)現(xiàn)</b>與應(yīng)用