色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

多分支選擇結(jié)構(gòu)程序設(shè)計(jì)的思想與實(shí)現(xiàn)方法

AGk5_ZLG_zhiyua ? 來源:未知 ? 作者:佚名 ? 2017-09-14 14:14 ? 次閱讀

周立功教授數(shù)年之心血之作《程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)》以及《面向AMetal框架與接口編程(上)》。書本內(nèi)容公開后,在電子行業(yè)掀起一片學(xué)習(xí)熱潮。經(jīng)周立功教授授權(quán),本公眾號特對《程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)》一書內(nèi)容進(jìn)行連載,愿共勉之。

第二章為程序設(shè)計(jì)技術(shù),本文為2.2.5 結(jié)構(gòu)體數(shù)組。

>>>2.2.5 結(jié)構(gòu)體數(shù)組

下面將以控制臺菜單選項(xiàng)為例,介紹多分支選擇結(jié)構(gòu)程序設(shè)計(jì)的思想與實(shí)現(xiàn)方法。一般來說,菜單欄至少包括新建文件、打開文件、保存文件和退出4項(xiàng)基本功能。比如:

如果使用函數(shù)指針,這4個函數(shù)的調(diào)用形式如下:

而新建文件、打開文件、保存文件和退出都可以作為字符串"新建文件"、"打開文件"、"保存文件"和"退出"存儲在char數(shù)組中。比如:

基于此,可以先聲明一個結(jié)構(gòu)體類型CmdEntry,其聲明如下:

接著定義一個結(jié)構(gòu)體數(shù)組作為函數(shù)表,分別用于存儲菜單函數(shù)的入口地址和菜單信息。其聲明如下:

在這里,將cmdArray聲明為一個內(nèi)含10個元素的數(shù)組,數(shù)組的每個元素都是一個CmdEntry類型的數(shù)組,因此cmdArray[0]是第一個CmdEntry類型的結(jié)構(gòu)體變量,cmdArray[1]是第2個CmdEntry類型的結(jié)構(gòu)體變量,以此類推。cmyArray是數(shù)組名,該數(shù)組中的每個元素都是CmdEntry類型的結(jié)構(gòu)體變量。

為了標(biāo)識結(jié)構(gòu)體數(shù)組中的成員,可以采用訪問單獨(dú)結(jié)構(gòu)體的規(guī)則:在結(jié)構(gòu)體名后面加一個點(diǎn)運(yùn)算符,再在點(diǎn)運(yùn)算符后面加上成員名。比如:

注意,數(shù)組下標(biāo)緊跟在cmyArray后面,不是成員名后面。比如:

使用cmdArray[2].cHelp的原因是:cmdArray[2]是結(jié)構(gòu)體變量名,正如cmdArray[1]是一個結(jié)構(gòu)體變量名。使用cmdArray[3].cHelp的原因是cmdArray[3]是結(jié)構(gòu)體變量名,如同cmdArray[0]是另一個變量名。由于數(shù)組變量名代表數(shù)組首元素的地址,因此下面兩個語句是等價(jià)的:

那么*pCmdEntry=cmdArray[0],因?yàn)?和*是一對逆運(yùn)算符,所以可以做以下替換:

由于.運(yùn)算符比*運(yùn)算符的優(yōu)先級高,因此必須使用圓括號。順帶提一下,下面的表達(dá)式代表什么?

這是cmdArray數(shù)組第1個結(jié)構(gòu)體變量(cmdArray[0]部分)中的第2個字符(cHelp[1]部分),這個字符為“建”。這個示例指出,點(diǎn)運(yùn)算符右側(cè)的下標(biāo)作用于各個成員,點(diǎn)運(yùn)算符左側(cè)的下標(biāo)作用于結(jié)構(gòu)體數(shù)組。最后總結(jié)一下:

根據(jù)上面的定義,即可用以下方式獲得相應(yīng)函數(shù)的入口地址。比如:

即pfuncmd函數(shù)指針指向CreateFile()函數(shù),其調(diào)用形式如下:

由此可見,采用回調(diào)函數(shù)動態(tài)綁定的方式,程序的可擴(kuò)展性得到了很大的提升。只需在“<標(biāo)注>1”處添加自定義的函數(shù),無需多處修改代碼,不僅可以很好地解決程序的可擴(kuò)展性問題,而且還大大地降低程序的出錯幾率,詳見程序清單2.26。

程序清單2.26 控制臺菜單選項(xiàng)程序

請用bubbleSort()算法完成這個練習(xí),將employeeArray結(jié)構(gòu)體數(shù)組分別按下列要求排序并輸出:(1)按id從小到大排序;(2)按weight、age、height從小到大排序,相同時(shí)按id從小到大排序;(3)bloodType按A、B、O、AB順序排序,相同時(shí)按id從小到大排序。

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

原文標(biāo)題:周立功:結(jié)構(gòu)體數(shù)組的應(yīng)用

文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    選擇結(jié)構(gòu)程序設(shè)計(jì)

    選擇結(jié)構(gòu)程序設(shè)計(jì)要設(shè)計(jì)選擇結(jié)構(gòu)程序,要考慮兩個方面的問題:一是在C語言中如何來表示條件,二是在C
    發(fā)表于 03-10 15:06

    結(jié)構(gòu)化匯編語言的監(jiān)控程序設(shè)計(jì)思想

    微型計(jì)算機(jī)控制技術(shù)_第五章第5章 常用應(yīng)用程序設(shè)計(jì) 本章以51單片機(jī)為基礎(chǔ),主要介紹結(jié)構(gòu)化匯編語言的監(jiān)控程序設(shè)計(jì)思想和實(shí)時(shí)測控系統(tǒng)中最常用的數(shù)字濾波技術(shù)、標(biāo)度變換、插值算法以及報(bào)警
    發(fā)表于 09-10 06:50

    選擇結(jié)構(gòu)程序設(shè)計(jì)

    實(shí)驗(yàn)  選擇結(jié)構(gòu)程序設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康?1)掌握邏輯表達(dá)式的正確書寫形式。(2)學(xué)會單分支和雙分支
    發(fā)表于 09-23 19:27 ?2102次閱讀

    匯編語言學(xué)習(xí)課件_程序基本結(jié)構(gòu)及其程序設(shè)計(jì)

    第五章 程序基本結(jié)構(gòu)及其程序設(shè)計(jì) 5.1 順序結(jié)構(gòu)及簡單程序設(shè)計(jì) 5.2 分支
    發(fā)表于 12-31 10:41 ?0次下載

    關(guān)于分支及循環(huán)結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)資料.ppt下載

    關(guān)于分支及循環(huán)結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)資料
    發(fā)表于 04-17 17:53 ?2次下載

    C語言教程之選擇結(jié)構(gòu)程序設(shè)計(jì)資料概述和設(shè)計(jì)實(shí)例免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語言教程之選擇結(jié)構(gòu)程序設(shè)計(jì)資料概述和設(shè)計(jì)實(shí)例免費(fèi)下載包括了:1.if條件分支結(jié)構(gòu)2.switch-case開關(guān)
    發(fā)表于 09-19 17:21 ?8次下載
    C語言教程之<b class='flag-5'>選擇</b><b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>程序設(shè)計(jì)</b>資料概述和設(shè)計(jì)實(shí)例免費(fèi)下載

    C++語言程序設(shè)計(jì)時(shí)如何控制語句?

    本文檔的主要內(nèi)容詳細(xì)介紹的是C++語言程序設(shè)計(jì)時(shí)如何控制語句?內(nèi)容包括了1 C++語句概述2 if語句實(shí)現(xiàn)選擇結(jié)構(gòu)3 switch語句實(shí)現(xiàn)
    發(fā)表于 09-20 14:51 ?2次下載
    C++語言<b class='flag-5'>程序設(shè)計(jì)</b>時(shí)如何控制語句?

    Visual Basic教程之順序,選擇,循環(huán)結(jié)構(gòu)程序設(shè)計(jì)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Visual Basic的控制結(jié)構(gòu)包括了:順序結(jié)構(gòu)程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì)
    發(fā)表于 10-12 16:44 ?3次下載
    Visual Basic教程之順序,<b class='flag-5'>選擇</b>,循環(huán)<b class='flag-5'>結(jié)構(gòu)</b>的<b class='flag-5'>程序設(shè)計(jì)</b>資料免費(fèi)下載

    C語言程序設(shè)計(jì)實(shí)用教程之如何選擇結(jié)構(gòu)程序設(shè)計(jì)

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語言程序設(shè)計(jì)實(shí)用教程之如何選擇結(jié)構(gòu)程序設(shè)計(jì):1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 2 邏輯運(yùn)算符邏輯表達(dá)式 3 if語句 4 switch語句 5
    發(fā)表于 10-31 18:04 ?6次下載
    C語言<b class='flag-5'>程序設(shè)計(jì)</b>實(shí)用教程之如何<b class='flag-5'>選擇</b><b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>程序設(shè)計(jì)</b>

    C語言程序設(shè)計(jì)教程之分支結(jié)構(gòu)程序設(shè)計(jì)的課件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語言程序設(shè)計(jì)教程之分支結(jié)構(gòu)程序設(shè)計(jì)的課件免費(fèi)下載。
    發(fā)表于 12-10 17:16 ?6次下載
    C語言<b class='flag-5'>程序設(shè)計(jì)</b>教程之<b class='flag-5'>分支</b><b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>程序設(shè)計(jì)</b>的課件免費(fèi)下載

    C語言程序設(shè)計(jì)教程之選擇結(jié)構(gòu)程序設(shè)計(jì)的資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語言程序設(shè)計(jì)教程之選擇結(jié)構(gòu)程序設(shè)計(jì)的資料說明。
    發(fā)表于 02-21 14:26 ?4次下載
    C語言<b class='flag-5'>程序設(shè)計(jì)</b>教程之<b class='flag-5'>選擇</b><b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>程序設(shè)計(jì)</b>的資料說明

    C++程序設(shè)計(jì)教程之程序設(shè)計(jì)初步資料說明

    ,6. 關(guān)系運(yùn)算和邏輯運(yùn)算,7. 選擇結(jié)構(gòu)和IF語句,8. 條件運(yùn)算符和條件表達(dá)式,9. 多分支選擇結(jié)構(gòu)和switch語句,10. 編寫
    發(fā)表于 03-14 14:48 ?7次下載
    C++<b class='flag-5'>程序設(shè)計(jì)</b>教程之<b class='flag-5'>程序設(shè)計(jì)</b>初步資料說明

    C語言的switch case多分支選擇語句的詳細(xì)資料說明

    1、switch-case開關(guān)語句是一種多分支選擇語句,用來實(shí)現(xiàn)多方向條件分支。雖然采用if-else條件判斷語句也可以實(shí)現(xiàn)多方向條件
    發(fā)表于 07-12 17:39 ?1次下載
    C語言的switch case<b class='flag-5'>多分支</b><b class='flag-5'>選擇</b>語句的詳細(xì)資料說明

    C語言程序設(shè)計(jì)第四講結(jié)構(gòu)程序設(shè)計(jì)選擇

    C語言程序設(shè)計(jì)第四講結(jié)構(gòu)程序設(shè)計(jì)選擇
    發(fā)表于 12-22 10:34 ?0次下載

    C程序設(shè)計(jì)基礎(chǔ)-分支結(jié)構(gòu)

    分支結(jié)構(gòu)簡單說就是條件,利用人為或者程序選擇運(yùn)行某一段程序,下面采用一個例子來描述這種結(jié)構(gòu)
    的頭像 發(fā)表于 03-02 10:06 ?773次閱讀
    C<b class='flag-5'>程序設(shè)計(jì)</b>基礎(chǔ)-<b class='flag-5'>分支</b><b class='flag-5'>結(jié)構(gòu)</b>
    主站蜘蛛池模板: 人人艹人人| 尹人久久大香找蕉综合影院| seyeye高清视频在线| 久久久久久久久女黄| 亚洲日韩国产精品乱-久| G0GO人体大尺香蕉| 在线成人精品国产区免费| 国产囗交10p| 少妇高潮惨叫久久久久久电影| cntv官网| 欧美白人战黑吊| 68日本xxxxxxxx79| 老师那里好大又粗h男男| 在线国产三级| 久久久久久免费高清电影| 一点色成人| 精品无码久久久久久久动漫 | 同时被两个男人轮流舔| japanese幼儿videos| 男女夜晚在爽视频免费观看| 6080伦理久久亚洲精品| 狂野猛交xxxx吃奶| 中文字幕乱偷无码AV蜜桃| 看免费人成va视频全| 在线观看国产小视频| 久久伊人影院| 最近中文字幕MV免费看| 美女黄图大全| 在线亚洲国产日韩欧洲专区| 国产免费变态视频网址网站| 午夜阳光影院在线观看视频| 国产精品69人妻无码久久久| 新香蕉少妇视频网站| 国产手机在线亚洲精品观看| 亚洲国语在线视频手机在线| 国产午夜AV无码无片久久96| 亚洲成年人在线观看| 精品人妻伦九区久久AAA片69 | 国产成人精品视频播放| 少妇无码吹潮久久精品AV网站 | 伊人久久99热这里只有精品 |