<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                【77.1 指針的“單向”輸出通道。】 函數的接口有兩個地方,一個是函數名“后面”的小括號所包含的接口參數,另一個是函數名“前面”通過函數內部return返回出來的“return返回類型”。比如: return返回類型 函數名(接口參數,接口參數...) unsigned char HanShu(unsigned char a,unsigned char b) //a和b是函數名“后面”的接口參數 { unsigned char c; c=a+b; return c; //函數內部返回出來的“return返回類型” } 指針在“函數名后面小括號所包含的接口參數”的地方時,可以是一個“雙向”口(輸入和輸出),如果在指針前面加上const關鍵字修飾,可以把“雙向”改為只能輸入的“單向”口,注意,這里所說的“單向”是指“輸入的單向”,但是做不到“輸出的單向”,指針如果想做到“輸出的單向”,就必須通過return這個通道。return返回指針這個功能很常用,比如用32位單片機想做比較漂亮的顯示界面時,大家往往喜歡用到emWIN這個界面顯示系統,而emWIN提供了很多庫函數,這些庫函數用了很多return返回的“句柄”,“句柄”其實就是指針,比如類似以下這行代碼: hItem = WM\_GetDialogItem(hWin\_FrameWin\_GetClientWindow, ID\_LISTVIEW\_0); //獲取某個控件的句柄 其中hItem就是“句柄”,本質就是函數內部return返回出來的指針。 所以本節內容主要是想告訴大家,return不僅可以返回普通的變量,也是可以返回指針的,而且還很常用。具體內容請看下面77.2例子中的講解。 【77.2 例程練習和分析。】 編寫一個函數,要從一個二維表格的數組中提取其中某一行的數據,用return這個返回輸出的通道來接收該行數據的地址(指針),然后再通過這個指針的間接調用,把該行數據全部顯示出來。 /\*---C語言學習區域的開始。-----------------------------------------------\*/ unsigned char \*GetRowData(unsigned char (\*pu8Table)\[3\],unsigned char u8RowSec); //函數聲明 unsigned char table\[\]\[3\]= //二維數組 { {0x00,0x01,0x02}, //二維數組的第0行數據 {0x10,0x11,0x12}, //二維數組的第1行數據 {0x20,0x21,0x22}, //二維數組的第2行數據 }; //函數名前面是unsigned char \*,代表內部return返回的是unsigned char \*的指針。 unsigned char \*GetRowData(unsigned char (\*pu8Table)\[3\],unsigned char u8RowSec) { unsigned char \*pu8Row; pu8Row=(unsigned char \*)&pu8Table\[u8RowSec\]\[0\]; //提取某一行開始的地址(指針) return pu8Row; //經過return通道對外輸出指針,pu8Row是一個指針類型的變量。 } unsigned char \*pGu8Row; //接收return輸出的指針 unsigned char Gu8Buffer\[3\]; //一維數組,存放從二維數組里提取出來的某一行數據 unsigned char i; // for循環的變量 void main() //主函數 { pGu8Row=GetRowData(table,0);//這里的0是表示選擇二維表格的第0行數據 for(i=0;i<3;i++) { Gu8Buffer\[i\]=pGu8Row\[i\]; //通過指針pGu8Row來搬運數據到一維數組Gu8Buffer } View(Gu8Buffer\[0\]); //在電腦端觀察存放二維數組某行數據的一維數組的內容 View(Gu8Buffer\[1\]); //在電腦端觀察存放二維數組某行數據的一維數組的內容 View(Gu8Buffer\[2\]); //在電腦端觀察存放二維數組某行數據的一維數組的內容 while(1) { } } /\*---C語言學習區域的結束。-----------------------------------------------\*/ 在電腦串口助手軟件上觀察到的程序執行現象如下: 開始... 第1個數 十進制:0 十六進制:0 二進制:0 第2個數 十進制:1 十六進制:1 二進制:1 第3個數 十進制:2 十六進制:2 二進制:10 分析: Gu8Buffer\[0\]是0,提取了二維數組的第0行第0個數據。 Gu8Buffer\[1\]是1,提取了二維數組的第0行第1個數據。 Gu8Buffer\[2\]是2,提取了二維數組的第0行第2個數據。 【77.3 如何在單片機上練習本章節C語言程序?】 直接復制前面章節中第十一節的模板程序,練習代碼時只需要更改“C語言學習區域”的代碼就可以了,其它部分的代碼不要動。編譯后,把程序下載進帶串口的51學習板,通過電腦端的串口助手軟件就可以觀察到不同的變量數值,詳細方法請看第十一節內容。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看