色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)

回到頂部

主站蜘蛛池模板: avtt天堂网Av无码 | 免费ā片在线观看 | 男吃奶玩乳尖高潮视频午夜 | 免费人妻无码不卡中文字幕系 | 日本无遮真人祼交视频 | 国产yw851.c免费观看网站 | 久久国产色欲aV38 | 999精品影视在线观看不卡网站 | 亚洲AV无码乱码在线观看 | 欧美黄色大片视频 | 欧美中文字幕一区二区三区 | 国产精品99久久久久久动医院 | 99在线精品视频观看免费 | 某机关少妇下班酒店在线播放 | 欧美 亚洲 激情 | 浴室里强摁做开腿呻吟的视频 | "国产精品久久 " | 男人脱了美女内衣摸她胸视频 | 日本精品免费观看 | 久久精品成人免费观看 | 国产精品人妻在线观看 | 最新无码国产在线播放 | 熟女少妇人妻中文字幕 | 蜜臀aⅴ在线 | 成人无码精品免费视频在线观看 | 国产乱子伦视频在线播放 | 欧美一区三区三区高中清蜜桃 | 京香一区二区三区 | 中文字幕精品一区二区2021年 | 一区二区亚洲精品国产精华液 | 久久久久久久亚洲AV无码 | 国产免费999| 北条麻妃国产九九九精品视频 | 国产亚洲精品精品国产亚洲综合 | 未满成年国产在线观看 | 精品人妻无码一区二区三区毛片 | 欧美XXXX做受欧美Gay | 天美传奇传媒官网免费安装 | 日韩国产一区二区三区四区五区 | 亚韩无码一区二区在线视频 | 狠狠狠狠狠狠干 |