色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 淺談程序員的開端——C語言

淺談程序員的開端——C語言 時(shí)間:2022-05-26      來源:華清遠(yuǎn)見

技術(shù)總結(jié):

在進(jìn)行軟件開發(fā)的時(shí)候,技術(shù)迭代更新速度極快。而想要快速掌握這些技術(shù),需要非常扎實(shí)的基礎(chǔ)才行。那么,現(xiàn)在我們就來談一談程序員的開端——C語言。C語言中,最困難的兩大知識(shí)點(diǎn)就當(dāng)屬指針與函數(shù)。指針的困難點(diǎn)倒不是在于它本身,困難的是指針與其他數(shù)據(jù)類型相結(jié)合,其形成的組合種類較多,最后導(dǎo)致指針難以理解。下面,我們就先從指針說起。

指針的基礎(chǔ):

指針的概念:

指針實(shí)際上就是地址。指針是在計(jì)算機(jī)自動(dòng)在內(nèi)存中分配的一塊空間,該空間用來存儲(chǔ)地址(該空間大小由操作系統(tǒng)來決定,64位操作系統(tǒng),需要用64位,也就是8字節(jié)空間來保存地址),而存儲(chǔ)的這個(gè)地址,是該指針?biāo)赶虻哪菈K空間的首地址。int *p = &A;

我們想要通過指針取到A空間中的數(shù)據(jù),可以使用*p來取(注意:*p表示的是A這塊空間,而不是A空間中的數(shù)據(jù),就像int A; 變量名A,表示的是A這個(gè)空間)。而A空間的首地址可以由p或&A來表示。

這樣,指針的本質(zhì)就講完了,是不是很就簡單?但這只是開始。

指針的組合:

指針與數(shù)組的組合:

指針與數(shù)組的組合有很多,如:數(shù)組指針,多級(jí)指針,函數(shù)指針,結(jié)構(gòu)體指針。數(shù)組指針中,比較難理解的就是,指針與二維數(shù)組的組合。想要弄清楚指針與二維數(shù)組的組合,我們先來看一維數(shù)組。一維數(shù)組的。。。。。。

函數(shù)的基礎(chǔ):

函數(shù)的概念:

函數(shù)實(shí)際上就是程序的跳轉(zhuǎn),即先將當(dāng)前程序的狀態(tài)保存在棧中,然后跳轉(zhuǎn)到相對(duì)應(yīng)的函數(shù)內(nèi),依次執(zhí)行函數(shù)內(nèi)的程序指令。當(dāng)函數(shù)執(zhí)行完后,函數(shù)被釋放,然后恢復(fù)之前保存在棧中的程序狀態(tài),再接著往下執(zhí)行程序。

我們之所以需要函數(shù),主要還是因?yàn)槲覀儾豢赡軐⒁粋(gè)項(xiàng)目中的所有程序指令都寫在main函數(shù)中去,一旦項(xiàng)目復(fù)雜的話,對(duì)程序的修改和調(diào)試將是一場災(zāi)難。如下圖:

所以在做項(xiàng)目的時(shí)候,我們保證項(xiàng)目高內(nèi)聚,低耦合。這個(gè)時(shí)候就需要函數(shù)來將代碼封裝起來了。我們常常使用的函數(shù)都是封裝起來的,而使用函數(shù)的難點(diǎn)就在于函數(shù)的參數(shù)如何填寫和判斷函數(shù)的返回值是什么。

函數(shù)的形參與返回值:

函數(shù)的格式: 返回值類型  函數(shù)名字(形參)

函數(shù)填寫:test(arr);(arr是數(shù)組名,也是數(shù)組的首地址)

(注意:如果此時(shí)是test(int p),則因?yàn)樾螀閕nt類型而不是指針類型,所以不能寫成test(arr);    我們可以填寫成test(arr[1]),arr數(shù)組中的每一個(gè)元素都為int類型。這樣可以,將arr數(shù)組中的第一個(gè)元素傳入到tset函數(shù)中去。)

(注意:在函數(shù)內(nèi)定義的數(shù)組,在函數(shù)結(jié)束后,數(shù)組會(huì)被釋放,如果將此數(shù)組作為返回值返回給main函數(shù)的話,由于數(shù)組已經(jīng)被釋放了,所以數(shù)組無法被找到,會(huì)發(fā)生錯(cuò)誤。解決辦法:1.堆 malloc  2.靜態(tài)變量 static)

函數(shù)填寫:xx(test)(test是另外一個(gè)函數(shù)的名字)

我們知道,函數(shù)的名字就是函數(shù)的入口也就是函數(shù)的首地址。所以,由此可知函數(shù)指針的本質(zhì)就是用來保存函數(shù)的首地址(即函數(shù)名)

 void (*p)(int)實(shí)際上就是,void (*)(int) p(定義了一個(gè)指針,其中void (*)(int)為指針類型,p為指針),例如:void (*)(int) p = test;其中p就表示為一個(gè)指向函數(shù)test()的函數(shù)指針。前面我們說過,指針實(shí)際上就是地址,也就是說void (*)(int) p是一個(gè)用來保存函數(shù)text函數(shù)首地址的指針(即用來保存test函數(shù)名字)。但是void (*)(int) p這種格式,C語言標(biāo)準(zhǔn)不認(rèn)可,我們需要寫成void (*p)(int)這種格式。

xx(int x)是一個(gè)函數(shù),其返回值為void(*)(int)函數(shù)指針類型,即其返回值是一個(gè)指向其他函數(shù)的指針。注意:xx(int x)是一個(gè)函數(shù),而不是一個(gè)用來保存地址的指針,所以此時(shí)void (*)(int)就為函數(shù)的返回值,而不是指針的指針類型。

好了,到目前為止,函數(shù)基本的使用我們已經(jīng)知道了。但是編程還是需要大量的實(shí)踐與理論學(xué)習(xí),多看看經(jīng)典的計(jì)算機(jī)書籍,會(huì)讓我們對(duì)編程的理解更加深入。

上一篇:不要再盲目學(xué)嵌入式了,你走的彎路還不少嗎?

下一篇:Linux和C語言的學(xué)習(xí)方法你真的知道嗎?

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2024 北京華清遠(yuǎn)見科技發(fā)展有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5京公海網(wǎng)安備11010802025203號(hào)

回到頂部

主站蜘蛛池模板: 最新日韩精品视频 | 中国久久久 | 中国性孕妇孕交tv | 黑人30厘米少妇高潮全部进入 | 日本福利片在线观看 | 免费观看麻豆 | 婷婷色综合视频在线观看 | 亚洲欧美日韩在线观看一区二区三区 | 日产精品一品二品三品 | 亚洲AV综合AV成人小说 | 无码精品国产一区二区免费 | 日韩一卡2卡3卡4卡2021免费观看国色天香 | 蜜臀AV久久国产午夜福利软件 | 欧美人与牲口杂交在线播放免费 | 任你操在线视频免费观看 | 国产精品白丝喷水在线观看 | 久久久久久久久久影院 | 无码任你躁久久久久久老妇 | 成年男人裸J照无遮挡无码 无码少妇人妻专区在线视频 | 欧美老熟妇XOXOXOXO | 色综合视频在线 | 美女露100‰奶头18禁 | 八戒八戒视频在线WWW观看 | 日本视频又叫又爽 | 人人添人人澡人人澡人人人爽 | 在线免费高清一区二区三区 | 亚洲av永久无码精品网站色欲 | 97久人人做人人妻人人玩精品 | 旧里番高h无码无修在线观看 | 在线亚洲美日韩 | 国产成人精品综合久久久久 | 黄网站在线永久免费观看 | 无码熟妇人妻AV在线网站 | HEYZO高无码国产精品 | 国外AV无码精品国产精品 | 色88久久久久高潮综合影院 | 欧美精品网 | 亚洲欧美国产精品专区久久 | 国产70老熟女重口小伙子 | 精品人妻二区中文字幕 | 日本无码人妻精品一区二区蜜桃 |