久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 學習筆記 > 嵌入式(shi)學習筆記:C高級函數快速學

嵌入(ru)式學(xue)習筆記:C高(gao)級函(han)數快(kuai)速(su)學(xue) 時間:2018-09-12      來源:未知

c高級可(ke)以說是(shi)就比較難了,尤(you)其是(shi)c高級函數這(zhe)是(shi)學(xue)習(xi)的難點(dian),那(nei)么如何快速學(xue)c高級函數呢,下面總結了一些函數知識(shi)點(dian)及案(an)例,可(ke)以快速學(xue)哦。

1.1定義

返回值類型(xing)(xing) 函數名(類型(xing)(xing) 形參, 類型(xing)(xing) 形參, ...)

{

語句

語句

return 返(fan)回(hui)值

}

函數名:標(biao)識符:用一眼要能看(kan)懂函數的(de)功能的(de)標(biao)識符來表示函數名

返(fan)回值類(lei)型:需要返(fan)回的(de)返(fan)回值類(lei)型

當不(bu)需要(yao)返(fan)回值(zhi)時,返(fan)回值(zhi)類型為void,return后(hou)邊需要(yao)加返(fan)回值(zhi)

當返回值類型為指(zhi)針(zhen)時,稱為指(zhi)針(zhen)函數

形參: 接收外(wai)部(bu)參數的局部(bu)變量(liang)

不需要接收參數時, 寫為void

6.2函數的調用

變量 = 函數名(ming)(實參1, 實參2, ......);

實參:傳給函數的變量(liang)或常量(liang)值。

運(yun)行過程(cheng):為形參分空間,把實參賦值給形參

運(yun)行函數(shu)中的程序

返回(hui)調(diao)用函數,運(yun)行調(diao)用點的下一(yi)行

補充:多窗(chuang)口:vsp

1.3函數的作用范圍

1.3.1 提前聲明(ming),擴大定義域(yu)(extern)

實例:

1.3.2 在文(wen)件中(zhong),調用(yong)另一個文(wen)件中(zhong)定義的函(han)數(shu)

編譯(yi)命令:gcc a.c b.c -g:編譯(yi)兩個文件的時候,執行依(yi)然是a.out

1.3.3. 禁止別的文件(jian)調用本文件(jian)的函(han)數(static)

注(zhu)意:用了(le)statics的話,不(bu)同文(wen)件中(zhong)是可以存在相同的文(wen)件名的。

stati將函(han)數的(de)作用范圍限制在本文件中

1.4變量的作(zuo)用范(fan)圍(這里詳(xiang)細的打開內存分(fen)配的部分(fen)及逆行(xing)講解)

1.4.1. 定義

全局變量(liang)(liang):定義(yi)在(zai)函數外的變量(liang)(liang),也可以理(li)解為定義(yi)在(zai){}外的變量(liang)(liang)。

局(ju)部變量:定義在函數內(nei)的變量,也可以理解(jie)為定義在{}內(nei)的變量。

需(xu)要定義在{}的開始(shi)。

1.4.2 作(zuo)用域(默(mo)認作(zuo)用范(fan)圍)

全局變量(liang):從定義開始到文件(jian)的(de)結束

局部變量:從(cong)定義(yi)開始到(dao)與之前一個(ge)對應(ying)的(de){ }結束。

注意:小作用范圍的變(bian)量,屏(ping)蔽大作用范圍的變(bian)量

解釋:

這里的擴大作用范圍是針對全局(ju)變量(liang)來(lai)說的,局(ju)部變量(liang)不能擴大

方法:1)使用的位置在(zai)定(ding)義之(zhi)前

2)使用的位(wei)置子其他文件

3)限制全局變量的作用(yong)范(fan)圍到默認作用(yong)域

4)函(han)數的作用域是從定義開始(shi),到本(ben)文件結束(針對文件來說)

實例:

1.5內(nei)存的分配

1.5.1.程序未運行時(shi)(size a.out可以看到(dao)信息)

text:存放CPU可執行的(de)(de)機器(qi)指令(ling),由(you)于程序被(bei)經(jing)常使用,防止(zhi)其被(bei)意外(wai)修改,代碼區(qu)通常是只讀的(de)(de)。

data: 存放被初始(shi)化的全局(ju)(ju)變(bian)(bian)量(liang)、靜(jing)態變(bian)(bian)量(liang)(全局(ju)(ju)靜(jing)態變(bian)(bian)量(liang)和(he)局(ju)(ju)部靜(jing)態變(bian)(bian)量(liang))、常量(liang)數據(如字符串常量(liang))。

Bss:存放未(wei)初(chu)始化的全局變(bian)量 (初(chu)始化成(cheng)0,計(ji)算機(ji)并(bing)不認為(wei)這是做了(le)初(chu)始化操作,所以初(chu)始化成(cheng)0的全局變(bian)量會(hui)被(bei)放在bss區(qu)中)

注意:BSS區的(de)數據在程序開始(shi)執行之前被(bei)內(nei)核(he)初始(shi)化為0或空指針(zhen)(NULL)。

具體:

1.5.2.程(cheng)序運行時(shi)

程序運行(xing)時占用5個區(qu)(qu):代碼區(qu)(qu)、初(chu)始化數(shu)據區(qu)(qu)/靜(jing)態(tai)數(shu)據區(qu)(qu)、未初(chu)始化數(shu)據區(qu)(qu)、堆區(qu)(qu)、棧區(qu)(qu)

(1)代碼(ma)區(text)

代碼區指(zhi)令根據(ju)程序(xu)(xu)設計流程依次執(zhi)行(xing),對于順(shun)序(xu)(xu)指(zhi)令,則只會執(zhi)行(xing)一次,如果反復(fu),則需使用跳轉指(zhi)令,如果進行(xing)遞歸,則需借助棧來(lai)實(shi)現。

代碼(ma)區(qu)包(bao)括操(cao)作碼(ma)和(he)要(yao)操(cao)作的(de)對(dui)象(或對(dui)象的(de)地址(zhi)引(yin)用(yong)),如果是立(li)即數(shu)(即具體的(de)數(shu)值,如2),將(jiang)直接包(bao)含在代碼(ma)中;如果是局部數(shu)據(ju),將(jiang)在棧中分配空間,然后(hou)引(yin)用(yong)該數(shu)據(ju)的(de)地址(zhi);如果是BSS區(qu)和(he)數(shu)據(ju)區(qu),在代碼(ma)中同(tong)樣引(yin)用(yong)該數(shu)據(ju)的(de)地址(zhi)。

 (2) 全(quan)局(ju)初始化數(shu)據區/靜(jing)態(tai)數(shu)據區(data)

在編譯(yi)(yi)的時(shi)候就會初始化,并且(qie)只初始化一次。上面已(yi)經(jing)說過,在程(cheng)序(xu)編譯(yi)(yi)時(shi),該(gai)區域已(yi)經(jing)被分(fen)配好了,這塊(kuai)內存(cun)在程(cheng)序(xu)的整個運行(xing)期(qi)間(jian)都存(cun)在,當(dang)程(cheng)序(xu)結束時(shi),才會被釋放。

(3)未初始化(hua)(hua)數(shu)據 區(BSS):在運行(xing)時(shi)改變其值(zhi)。初始化(hua)(hua)0不算(suan)初始化(hua)(hua)。

(4)棧區(stack)

存放函數(shu)的(de)參數(shu)值(zhi)和局部變量,由編譯(yi)器自動分配釋放,其操作方(fang)式類似于(yu)數(shu)據結構(gou)的(de)棧。其特點是(shi)不需要程序員(yuan)去考慮內存管理的(de)問題(ti),很(hen)方(fang)便;同時(shi)(shi)棧的(de)容(rong)量很(hen)有限,在Linux系統中(zhong),棧的(de)容(rong)量只有8M,并且當相(xiang)應的(de)范圍結束時(shi)(shi)(如(ru)函數(shu)),局部變量就不能再使(shi)用。

(5)堆(dui)區(heap)

有些(xie)操(cao)作對象只(zhi)有在(zai)(zai)程(cheng)序(xu)(xu)運行(xing)時才能確定,這樣編譯器在(zai)(zai)編譯時就(jiu)無法(fa)為(wei)他們預先分配(pei)空間(jian),只(zhi)有程(cheng)序(xu)(xu)運行(xing)時才分配(pei),這就(jiu)是動態內存(cun)分配(pei)。堆(dui)區(qu)就(jiu)是用于動態內存(cun)分配(pei)(如malloc的動態內存(cun)分配(pei)),堆(dui)在(zai)(zai)內存(cun)中位(wei)于bss區(qu)和棧(zhan)區(qu)之間(jian),一般由(you)程(cheng)序(xu)(xu)員(yuan)申請和釋(shi)放(free釋(shi)放或程(cheng)序(xu)(xu)停止)。

實例:

注意:

(1):堆區的內存需(xu)要(yao)程序員自己(ji)釋放(fang)。

(2):棧區在(zai)范圍結(jie)束時,編譯器就會釋放了(le),所以(yi)要注(zhu)意棧區中數(shu)據(ju)的生命周期(qi)。

(3):棧區容量有限,注意(yi)不要使用(yong)超大(da)(da)局部(bu)變(bian)量,比如超大(da)(da)數組。

(4):bss區(qu)(qu)中(zhong)的數據(ju),你不(bu)進(jin)行初始(shi)化的話,系統會幫我們初始(shi)化成0。但(dan)其(qi)他區(qu)(qu)域的數據(ju),系統不(bu)會為(wei)我們做什(shen)么,尤其(qi)注意堆區(qu)(qu)和(he)棧區(qu)(qu)中(zhong)的數據(ju),未經初始(shi)化的變量則有可能(neng)是(shi)臟數據(ju)。

1.6變(bian)量的生命周(zhou)期(qi)

1.6.1分類

1. data和bss中的(de)(de)變(bian)量的(de)(de)生命周(zhou)期:程序的(de)(de)開始(shi)到程序的(de)(de)結束。==>全(quan)局(ju)(ju)變(bian)量,靜(jing)態(全(quan)局(ju)(ju)/局(ju)(ju)部)變(bian)量

2. 棧中的變量的生(sheng)命(ming)周(zhou)期:函(han)數的開始到函(han)數的結束。==>局部變量,形參

6.6.2對(dui)靜態局部變(bian)量的說明:

有時(shi)希望(wang)函(han)(han)(han)數中(zhong)的(de)(de)局部變(bian)(bian)量的(de)(de)值(zhi)(zhi)在函(han)(han)(han)數調(diao)用(yong)結束(shu)后不消失而保(bao)留原(yuan)值(zhi)(zhi),即其(qi)占用(yong)的(de)(de)存儲單元不釋放,在下一(yi)次(ci)該(gai)(gai)函(han)(han)(han)數調(diao)用(yong)時(shi),該(gai)(gai)變(bian)(bian)量保(bao)留上(shang)一(yi)次(ci)函(han)(han)(han)數調(diao)用(yong)結束(shu)時(shi)的(de)(de)值(zhi)(zhi)。這時(shi)就(jiu)應該(gai)(gai)指定該(gai)(gai)局部變(bian)(bian)量為靜態局部變(bian)(bian)量(static local variable)。

(1) 靜(jing)態局(ju)部變(bian)量(liang)在靜(jing)態存(cun)儲(chu)區(qu)內(nei)分配存(cun)儲(chu)單元(yuan)。在程序整個運行期(qi)間都(dou)不釋(shi)放。而(er)自動變(bian)量(liang)(即(ji)動態局(ju)部變(bian)量(liang))屬于動態存(cun)儲(chu)類別,存(cun)儲(chu)在動態存(cun)儲(chu)區(qu)空間(而(er)不是靜(jing)態存(cun)儲(chu)區(qu)空間),函(han)數(shu)調用結束后(hou)即(ji)釋(shi)放。

(2) 為靜(jing)態局部(bu)變(bian)(bian)量賦初值(zhi)(zhi)(zhi)(zhi)是在(zai)(zai)編(bian)譯時進(jin)行(xing)(xing)值(zhi)(zhi)(zhi)(zhi)的,即(ji)只賦初值(zhi)(zhi)(zhi)(zhi)一(yi)次(ci),在(zai)(zai)程序運行(xing)(xing)時它已有初值(zhi)(zhi)(zhi)(zhi)。以后(hou)每次(ci)調用(yong)函數(shu)(shu)時不(bu)再(zai)重新(xin)賦初值(zhi)(zhi)(zhi)(zhi)而只是保留(liu)上次(ci)函數(shu)(shu)調用(yong)結束時的值(zhi)(zhi)(zhi)(zhi)。而為自(zi)動變(bian)(bian)量賦初值(zhi)(zhi)(zhi)(zhi),不(bu)是在(zai)(zai)編(bian)譯時進(jin)行(xing)(xing)的,而是在(zai)(zai)函數(shu)(shu)調用(yong)時進(jin)行(xing)(xing),每調用(yong)一(yi)次(ci)函數(shu)(shu)重新(xin)給一(yi)次(ci)初值(zhi)(zhi)(zhi)(zhi),相(xiang)當于(yu)執行(xing)(xing)一(yi)次(ci)賦值(zhi)(zhi)(zhi)(zhi)語句。

(3) 如果在(zai)定(ding)義局(ju)部變量(liang)時不(bu)(bu)賦(fu)(fu)(fu)初(chu)值(zhi)的(de)話,對(dui)(dui)靜態局(ju)部變量(liang)來說(shuo),編譯(yi)時自(zi)動(dong)賦(fu)(fu)(fu)初(chu)值(zhi)0(對(dui)(dui)數(shu)值(zhi)型變量(liang))或空(kong)字符(fu)(對(dui)(dui)字符(fu)型變量(liang))。而對(dui)(dui)自(zi)動(dong)變量(liang)來說(shuo),如果不(bu)(bu)賦(fu)(fu)(fu)初(chu)值(zhi),則它的(de)值(zhi)是一個不(bu)(bu)確定(ding)的(de)值(zhi)。這是由于(yu)每次(ci)函(han)數(shu)調(diao)用結束后存儲單元已釋(shi)放,下(xia)次(ci)調(diao)用時又重(zhong)新另(ling)分(fen)配(pei)存儲單元,而所(suo)分(fen)配(pei)的(de)單元中的(de)值(zhi)是不(bu)(bu)確定(ding)的(de)。

(4) 雖然(ran)靜態局部變(bian)量(liang)在(zai)函數調用(yong)結束(shu)后(hou)仍然(ran)存在(zai),但其他函數是不能引用(yong)它的(de),也就是說(shuo),在(zai)其他函數中它是“不可見”的(de)。

具體解釋:

初始化全局(ju)變(bian)(bian)量(liang)(liang)未初始化全局(ju)變(bian)(bian)量(liang)(liang)局(ju)部變(bian)(bian)量(liang)(liang)靜態(tai)(tai)全局(ju)變(bian)(bian)量(liang)(liang)靜態(tai)(tai)局(ju)部變(bian)(bian)量(liang)(liang)

占用存(cun)儲空間data

bss棧datadata

初(chu)始(shi)化次數初(chu)始(shi)化一次

初始(shi)(shi)化(hua)(hua)一次(ci)每次(ci)調用(yong)都(dou)初始(shi)(shi)化(hua)(hua)初始(shi)(shi)化(hua)(hua)一次(ci)初始(shi)(shi)化(hua)(hua)一次(ci)

作用(yong)(yong)(yong)域默認(ren)(ren)作用(yong)(yong)(yong)域,可擴(kuo)大默認(ren)(ren)作用(yong)(yong)(yong)域,可擴(kuo)大默認(ren)(ren)作用(yong)(yong)(yong)域默認(ren)(ren)作用(yong)(yong)(yong)域默認(ren)(ren)作用(yong)(yong)(yong)域

生命周期程(cheng)(cheng)(cheng)序(xu)開(kai)(kai)始->程(cheng)(cheng)(cheng)序(xu)結(jie)(jie)(jie)束(shu) 程(cheng)(cheng)(cheng)序(xu)開(kai)(kai)始->程(cheng)(cheng)(cheng)序(xu)結(jie)(jie)(jie)束(shu)定義(yi)開(kai)(kai)始,函數(shu)結(jie)(jie)(jie)束(shu)程(cheng)(cheng)(cheng)序(xu)開(kai)(kai)始->程(cheng)(cheng)(cheng)序(xu)結(jie)(jie)(jie)束(shu)程(cheng)(cheng)(cheng)序(xu)開(kai)(kai)始->程(cheng)(cheng)(cheng)序(xu)結(jie)(jie)(jie)束(shu)

補充:register變(bian)量

register int r_local = 6;要求編譯器(qi)盡(jin)量(liang)放在寄存器(qi),register變量(liang)是(shi)不能做取地(di)址操作(zuo)的(de)

register使用寄存器變量會提升速(su)度(du),也并不是(shi)說我(wo)們(men)盡可能地多地定義register變量就能加快程序的運行速(su)度(du),畢竟CPU中(zhong)寄存器是(shi)有限(xian)的,

如(ru)果(guo)你(ni)把變量(liang)指(zhi)定為register變量(liang),意味(wei)著可用于別的用途的寄(ji)存器就減少了,如(ru)程序(xu)運算產生的中間結果(guo),它們的應用又很頻(pin)繁(fan),

在寄存器不(bu)足的(de)情況下,只好借助于(yu)內存,這樣(yang)反倒會降低程序的(de)運算速度。

在(zai)現今(jin)的C版本中,大多已沒有(you)定義register變(bian)量(liang)的必要,因(yin)為編(bian)譯程序忽(hu)略register修飾(shi)符,而根(gen)據(ju)寄存器的使用情(qing)況和變(bian)量(liang)的情(qing)況決定是否(fou)把變(bian)量(liang)解釋為register變(bian)量(liang)。

1.7函數的傳(chuan)參(can)

1.7.1 指針參數

補充:還有種應用場(chang)景(jing),就是需要使(shi)用結構體(ti)作為(wei)參(can)數(shu)的(de)時候,因為(wei)形參(can)消耗的(de)是棧的(de)空間(jian),棧的(de)空間(jian)是有限(xian)的(de),如(ru)果結構體(ti)比較大(da),一般不(bu)建議(yi)直接(jie)將結構體(ti)作為(wei)形參(can),而是通(tong)過指針對其進(jin)行訪(fang)問。

1.7.2 數組參數

int atoil(char str[10])

int atoil(char str[])

int atoil(char *str)

這(zhe)三種(zhong)(zhong)定(ding)義的(de)形(xing)(xing)式不同(tong),但(dan)是達到的(de)效果(guo)是一(yi)模一(yi)樣的(de),不管使用哪一(yi)種(zhong)(zhong)定(ding)義,編譯器都會將(jiang)其(qi)轉換成第三種(zhong)(zhong)形(xing)(xing)式。

1.8指(zhi)(zhi)針函(han)數 VS 函(han)數指(zhi)(zhi)針

1.8.1 指(zhi)針函數(pointfunc.c)

確定方法:

(1)確定目標類型 int buf[5]

(2)確定(ding)指(zhi)針類型 在目標類型基(ji)礎(chu)上加(jia)(jia)* 加(jia)(jia)在變量名位置(zhi) int (*)[5]

(3)定義(yi)指(zhi)針變量(liang) int (*p)[5]

實例:

1.8.2 函數指針:首先(xian)是指針,指向的(de)是函數。

(1) 定義

void swap(int *a, int *b)

void (*pfunc)(int *, int *);

(2) 賦值

pfunc = &swap;

pfunc = swap; (函(han)數(shu)名(ming), 就是函(han)數(shu)的指(zhi)針常量)

注意:函數(shu)(shu)類(lei)型(xing)(xing)和函數(shu)(shu)指(zhi)針類(lei)型(xing)(xing)兼容,上邊(bian)兩種定義形式可(ke)以隨(sui)便選(xuan)擇使用

(3) 調用

(*pfunc)(&a, &b);//將swap理解成(cheng)函數

pfunc(&a, &b); //將(jiang)swap理(li)解成函數(shu)指(zhi)針,這兩種調用隨(sui)便選擇,跟上邊的定(ding)義是沒有關系的。

實例:

補充:strcmp 比較字符串(chuan)大小 qsort 可(ke)以(yi)快速排序

用法:

shrcmp

strcmp()函數(shu)是通過兩個字符(fu)(fu)串一(yi)個一(yi)個字符(fu)(fu)比較的(最(zui)多比較次數(shu)為第二個參數(shu)的長度(du)+1)

例(li)如strcmp("hello","here");

首先(xian)比(bi)較第一個(ge)字(zi)符(fu)'h'= 'h'相等(deng)

接著比較第二個字符(fu)'e'= 'e'相等

比(bi)較第三個字符 'l'>'e',返回一(yi)個正值

如果字符串(chuan)完(wan)全相(xiang)等(deng)會回0

qsort:

qsort是萬能數(shu)組(zu)排序函數(shu),必(bi)須(xu)要學會使用(yong),簡單的(de)數(shu)組(zu)自然不用(yong)說,這里主要討論一下字(zi)符(fu)串數(shu)組(zu)的(de)使用(yong)。

首先看一下qsort的原型:

void qsort(void *base, size_t nmemb, size_t size,

int(*compar)(const void *, const void *));

正確使用這個函數要注(zhu)意(yi)幾(ji)點:

1.base要傳數組的首地址

2.size傳的是每個元素(su)的大小

3.正確編寫compar函(han)數

下面是實際應用:

一個(ge)字(zi)符串(chuan)(chuan)數(shu)組:*str[MAX],假(jia)設里面現在(zai)保存(cun)了n個(ge)字(zi)符串(chuan)(chuan)了。

首先要正確理解什么是(shi)字(zi)(zi)符(fu)串(chuan)數(shu)組,簡單的(de)(de)說(shuo),可(ke)以理解成它(ta)就是(shi)一個數(shu)組,只不過其中的(de)(de)元素(su)是(shi)一串(chuan)字(zi)(zi)符(fu)串(chuan),而訪問(wen)這(zhe)些字(zi)(zi)符(fu)串(chuan),得用指針,也(ye)就是(shi)它(ta)們的(de)(de)地址,比(bi)如(ru)*name[]={"james","henry"},那么訪問(wen)其中的(de)(de)字(zi)(zi)符(fu)串(chuan)就是(shi)name[0],name[1]...這(zhe)里就有個容易混淆的(de)(de)地方了,對(dui)(dui)于字(zi)(zi)符(fu)串(chuan)數(shu)組,那么每(mei)個元素(su)的(de)(de)大(da)小(xiao)到底(di)是(shi)多少呢?對(dui)(dui)name[0]來(lai)說(shuo),到底(di)是(shi)字(zi)(zi)符(fu)串(chuan)“james”的(de)(de)長度5,還是(shi)char*的(de)(de)大(da)小(xiao)4呢?答案應(ying)該(gai)是(shi)4,因(yin)為字(zi)(zi)符(fu)串(chuan)數(shu)組里面保存的(de)(de)是(shi)各個字(zi)(zi)符(fu)串(chuan)的(de)(de)指針,所以回到上面所說(shuo)的(de)(de)第二點注意(yi),用qsort的(de)(de)時候應(ying)該(gai)要傳(chuan)sizeof(char *);

第二(er),編寫(xie)compar函數(shu)比較字符串有地方要注意:

不能(neng)把strcmp本身傳(chuan)給qsort,即不能(neng)寫(xie)strcmp(p,q),因為形參(can)是const void*類型,同理,寫(xie)成strcmp((char *)p, (char *)q);也是無(wu)效的(de);正(zheng)確的(de)寫(xie)法應(ying)該是:strcmp(*(char **)p, *(char **)q);先強制轉換成char**,在用*減(jian)少一層(ceng)間(jian)接尋(xun)址操(cao)作:

int compar_words(const void *p, const void *q)

{

return strcmp(*(char **)p, *(char **)q);

}

對(dui)于上面的應用(yong),最(zui)后使用(yong)qsort應該(gai)是這樣:

qsort(str, n, sizeof(char *), compar);

實(shi)例:比較(jiao)數(shu)組中的(de)字符(fu)串(chuan)的(de)大小

 

1.9遞歸(gui)函數

定義(yi):直接或間接調用(yong)自己

注意:遞歸程(cheng)序(xu)的效率(lv)比較低(di),空間占用的也很(hen)多,唯一的理由是比較容(rong)易看(kan)懂。

例(li): 利用函(han)數遞歸實現n!

1. 寫出遞歸通用項:n! = n * (n - 1)!

2. 寫(xie)出遞歸結束條件:n = 1

3. 代碼實現:假設(she)函(han)數(shu)已經寫好,可以用(yong)調(diao)用(yong),不要去想計算機執行的具體過程

4. 單步執行, 掌握執行流程

實(shi)例:實(shi)現階乘(cheng) 將輸入的字符串反向輸出(chu)。

上一篇:嵌入式學習筆記:shell腳本學習從入門到精通

下一篇:嵌入式學習筆記:c語言結構體定義和使用

熱(re)點文章推薦(jian)
華清學員就業(ye)榜單
高(gao)薪學員經驗分享
熱(re)點(dian)新聞推薦
前臺專(zhuan)線(xian):010-82525158 企業(ye)培訓(xun)洽談專線(xian):010-82525379 院校(xiao)合作洽(qia)談(tan)專線(xian):010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部