IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

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

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

技術總結:

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

指針的基礎:

指針的概念:

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

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

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

指針的組合:

指針與數組的組合:

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

函數的基礎:

函數的概念:

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

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

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

函數的形參與返回值:

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

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

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

(注意:在函數內定義的數組,在函數結束后,數組會被釋放,如果將此數組作為返回值返回給main函數的話,由于數組已經被釋放了,所以數組無法被找到,會發(fā)生錯誤。解決辦法:1.堆 malloc  2.靜態(tài)變量 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語言的學習方法你真的知道嗎?

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

回到頂部

主站蜘蛛池模板: 双层恒温培养箱|智能振荡培养箱-常州市仪都百科 | 武汉印刷厂_为企业提供宣传单页彩页印刷_武汉折页印刷_海报设计印刷与制作 - 武汉泽雅印刷公司 | 洒水车|冷藏车|LED广告车|油罐车|道路救援车|垃圾车|程力专用汽车股份有限公司销售九分公司 | 新鲜水果 新鲜茶 - 甜啦啦官网| 清洁公司| 保洁公司| 东莞清洁| 东莞保洁|壹壹清洁 | 长沙天为工程机械制造有限公司| 台式氙灯老化箱-光伏组件-真空老化试验箱|中科万通仪器官网 | 推荐|广佛一条龙高端茶到底有多香 | 凝汽器换管-胶球清洗装置-二次滤网_连灵动 | 线路板生产厂家|电路板快板打样|PCB工厂价格|江西锦宏电子有限公司|PCB版加工定制 | 医用空气净化消毒机,医用床单位消毒机,无磁空气消毒机,紫外线空气消毒机厂家-南昌市扬帆环保设备有限公司 | 木箱_木箱包装_出口木箱设计_熏蒸木箱价格_包装木箱厂 | 天津印刷_天津印刷厂_天津印刷公司_天津包装盒厂家_天津包装盒印刷厂_七层共挤膜厂家_彩色印刷_画册印刷_礼品盒定做 _七层共挤膜_食品真空袋-欢迎访问嘉联包装官网! | 桥梁伸缩缝_桥梁伸缩缝厂家_桥梁伸缩缝价格-衡水淞皓路桥养护工程有限公司 | 艺考培训-中影人教育 【官网】-中国艺考教育的引航者 | 以物联网技术为核心专注于智能安防领域物联网服务的高新技术企业-北京欣智恒科技股份有限公司(官网) | 济南货架|济南仓储货架|济南仓库货架|山东蕴达金属制品有限公司 济南海纳特科技有限公司 | 排水PVC管-PVC排污管-给水PVC管-电线PVC管-米阳建材pvc管厂 | 木屑烘干机|酒糟烘干机|果渣烘干机_郑州东鼎机械 | 数控滑台,机床滑台,十字滑台,直线滑台,三轴滑台,立柱滑台厂家-泊头市北重机械制造有限公司 | 微行科技(MicroX):半导体装备核心供应商-超高真空炉 | 芜湖液压配件-液压过滤器滤芯-水过滤器-芜湖新俊液压设备有限公司 | 振动给料机_电磁振动给料机_振动给料机厂家-新乡市大汉振动机械有限公司 | 浙江中凯科技股份有限公司-KB0控制与保护开关_KBO | 耐磨工业软管,PTFE耐腐蚀软管,耐磨喷砂胶管,超耐磨软管厂家,漯河利通液压管利通科技-耐磨工业软管,PTFE耐腐蚀软管,耐磨喷砂胶管,超耐磨软管厂家,漯河利通液压管利通科技 | 氢能展,氢能展会,燃料电池展,加氢设备_氢气储运_制氢设备_氢燃料汽车_加氢站成套设备 | 原子灰厂家—长兴宝迪环保科技有限公司【官网】| 网络广播_公共广播系统_校园,学校数字ip,itc智能广播系统方案 | 上饶环亚电脑会计培训学校--电脑学校|上饶电脑学校|上饶电脑培训|会计培训|上饶会计培训|上饶县会计培训|广丰会计培训|玉山会计培训|横峰会计培训|上饶网店培训 上进电缆(嘉兴)股份有限公司官网 - 光伏电缆|防火电缆|电力电缆|铝合金电缆专业生产厂家 | 上海网站建设公司|上海自适应网站制作|上海仿制网站建设公司-智淇网络 | 南宁清洁公司|外墙清洗|开荒清洁|洒水车|管道疏通|园林绿化_广西优而美环境工程有限公司 | 九江市新双龙广告装饰有限公司| 江苏瑞翔电器有限公司-| 绿夏技术导航 - 收录精选资源及优质站点网址! | 河南豫冀锅炉容器制造有限公司 | 湖南长沙癫痫病医院_湖南癫痫病专科医院_湖南治疗癫痫病专业医院_长沙和谐医院有限公司 | 气胀轴丨安全夹头丨电磁制动器丨纠偏系统丨磁粉离合器丨张力控制器厂家- 东莞天机通信科技有限公司 | 液压升降货梯_导轨式升降机_往复式提升机_济南宇轩机械厂家 | 激光切割加工,佛山激光切割加工,钣金加工,机加工-佛山市华锐达金属制品有限公司 | 小型静音无油空压机价格-医用无油制氧空气压缩机-浙江盛源水润滑空压机制造有限公司 | 久久91精品久久91综合_国产亚洲自拍一区_国产精品第1页_亚洲高清视频一区_91成人午夜在线精品_亚洲国产精品网站在线播放_亚洲国产成人久久综合区_国产精品亚洲专区在线观看_免费视频精品一区二区三区 |