日韩在线免费播放-日韩在线免费av-日韩在线免费-日韩在线毛片-国产高清不卡视频-国产高清不卡

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 淺談程序員的開端——C語言

淺談程序員的開端——C語言 時間:2022-05-26      來源:華清遠見

技術總結:

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

指針的基礎:

指針的概念:

指針實際上就是地址。指針是在計算機自動在內存中分配的一塊空間,該空間用來存儲地址(該空間大小由操作系統來決定,64位操作系統,需要用64位,也就是8字節空間來保存地址),而存儲的這個地址,是該指針所指向的那塊空間的首地址。int *p = &A;

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

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

指針的組合:

指針與數組的組合:

指針與數組的組合有很多,如:數組指針,多級指針,函數指針,結構體指針。數組指針中,比較難理解的就是,指針與二維數組的組合。想要弄清楚指針與二維數組的組合,我們先來看一維數組。一維數組的。。。。。。

函數的基礎:

函數的概念:

函數實際上就是程序的跳轉,即先將當前程序的狀態保存在棧中,然后跳轉到相對應的函數內,依次執行函數內的程序指令。當函數執行完后,函數被釋放,然后恢復之前保存在棧中的程序狀態,再接著往下執行程序。

我們之所以需要函數,主要還是因為我們不可能將一個項目中的所有程序指令都寫在main函數中去,一旦項目復雜的話,對程序的修改和調試將是一場災難。如下圖:

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

函數的形參與返回值:

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

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

(注意:如果此時是test(int p),則因為形參為int類型而不是指針類型,所以不能寫成test(arr);    我們可以填寫成test(arr[1]),arr數組中的每一個元素都為int類型。這樣可以,將arr數組中的第一個元素傳入到tset函數中去。)

(注意:在函數內定義的數組,在函數結束后,數組會被釋放,如果將此數組作為返回值返回給main函數的話,由于數組已經被釋放了,所以數組無法被找到,會發生錯誤。解決辦法:1.堆 malloc  2.靜態變量 static)

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

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

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

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

好了,到目前為止,函數基本的使用我們已經知道了。但是編程還是需要大量的實踐與理論學習,多看看經典的計算機書籍,會讓我們對編程的理解更加深入。

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

下一篇:Linux和C語言的學習方法你真的知道嗎?

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2024 北京華清遠見科技發展有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 马文的战争电影完整视频观看| 美女搞黄免费| 陈一龙是哪部电视剧| 历代高僧大德开悟诗100首| 邓佳佳| 闺蜜心窍 电影| 踢车帮| 内蒙古电视台雷蒙| 集体生活成就我教学设计| 大侠霍元甲演员表| 个体工商户起名字大全免费| 韩国电影《密爱》观看| 拉字至上q世代| 追捕演员表名单| 陈瑞的情债| 招聘女服务员2| 金珠和陈诗雅主演的韩剧| 盲辉| 男同性恋av| 郭麒麟个人资料简介| 黑龙江卫视节目| 挨打的作文| 红海行动2虎鲸行动| 石川佑希| 挠胳肢窝肚子腰| 直播挤奶| 好好说再见| 出轨的女人电影| 李保国电影| 纳杰| 重启之极海听雷2免费版在线播放| 拿什么拯救你我的爱人剧情简介| 张天爱三级露全乳hd电影| 改朝换代| 贝加尔湖畔指弹吉他谱| 加濑亮| 黑帮大佬和我的三百六十五| 一闪一闪亮晶晶的简谱钢琴| 荆棘花| 音速小子| 追诉电视剧|