第一章 指針的概念 指針是一個(gè)特殊的變量,它里面存儲(chǔ)的數(shù)值被解釋成為內(nèi)存里的一個(gè)地址。要搞清一個(gè)指針需要搞清指針的四方面的內(nèi)容:指針的類(lèi)型,指針?biāo)赶虻念?lèi)型,指針的值或者叫指針?biāo)赶虻膬?nèi)存區(qū),還
終于說(shuō)到了指針。指針是C語(yǔ)言的精華部分,如果沒(méi)有指針,c語(yǔ)言對(duì)底層的許多操作將無(wú)法完成。也是因?yàn)橹羔樀拇嬖?,使得c語(yǔ)言看起來(lái)并不那么高級(jí),因?yàn)橹羔槻僮鞯膶?duì)象的是內(nèi)存地址,想要熟練地進(jìn)行指針操
一、指針是地址各種類(lèi)型的數(shù)據(jù)被分配合適的內(nèi)存。比如整形數(shù)據(jù)通常被分配兩個(gè)連續(xù)的存儲(chǔ)單元(字節(jié))存放。對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)是通過(guò)分配給數(shù)據(jù)的內(nèi)存首地址來(lái)實(shí)現(xiàn)的。我們稱(chēng)這些內(nèi)存地址為指針。二、指針變量是
CS-51單片機(jī)外部RAM的地址空間為64K,地址總線(xiàn)為16位,訪(fǎng)問(wèn)外接RAM可執(zhí)行如下4條指令:MOVX A,@DPTRMOVX @DPTR,AMOVX A,@RIMOVX @RI,A其中DPTR為16位地址寄存器,地址高8位存于DPH,地址低8位存于DPL;
C語(yǔ)言中的指針和數(shù)組幾乎可以互換,數(shù)組名可認(rèn)為是一個(gè)常量指針,指針可用來(lái)完成涉及數(shù)組下標(biāo)的操作。e.g.int * nPtr;int Array[size];(1)數(shù)組與指針等價(jià)nPtr = Array;或者nPtr = &Array[0];(2)引
//定時(shí)器3中斷服務(wù)程序 void TIM3_IRQHandler(void){ if(TIM3->SR&0X0001)//溢出中斷{char str[5];//LED1=!LED1; //TIM3->CR1 &= 0xfe; //關(guān)閉定時(shí)器3 rx_all += rx_count; tx_all +=
在下列函數(shù)聲明中,為什么要同時(shí)使用*和&符號(hào)?以及什么場(chǎng)合使用這種聲明方式? void func1( MYCLASS *&pBuildingElement ); 論壇中經(jīng)常有人問(wèn)到這樣的問(wèn)題。 本文試圖通過(guò)一些實(shí)際的指針使用經(jīng)驗(yàn)來(lái)解釋這個(gè)問(wèn)題。 仔
1. 引言 指針是C/C++語(yǔ)言的特色,而數(shù)組名與指針有太多的相似,甚至很多時(shí)候,數(shù)組名可以作為指針使用。于是乎,很多程序設(shè)計(jì)者就被搞糊涂了。而許多的大學(xué)老師,他們?cè)贑語(yǔ)言的教學(xué)過(guò)程中也錯(cuò)誤得給學(xué)生講解:“數(shù)組
從業(yè)近十年!手把手教你單片機(jī)程序框架 第58講開(kāi)場(chǎng)白:?jiǎn)蝹€(gè)變量數(shù)據(jù)之間可以通過(guò)一條指令任意自由賦值轉(zhuǎn)移,但是數(shù)組之間不能通過(guò)一條指令直接賦值轉(zhuǎn)移,必須用for等循環(huán)指令挨個(gè)把數(shù)組的數(shù)據(jù)一個(gè)一個(gè)來(lái)賦值轉(zhuǎn)移,如果
從業(yè)近十年!手把手教你單片機(jī)程序框架 第57講開(kāi)場(chǎng)白:通過(guò)上一節(jié)的學(xué)習(xí),我們知道指針在函數(shù)接口中具有雙向性,這個(gè)雙向性是一把雙刃劍,既給我們帶來(lái)便捷,也給我們帶來(lái)隱患。這一節(jié)要教大家以下知識(shí)點(diǎn):凡是做輸入
從業(yè)近十年!手把手教你單片機(jī)程序框架 第56講開(kāi)場(chǎng)白:通過(guò)前面幾個(gè)章節(jié)的學(xué)習(xí),我們知道指針在函數(shù)的接口中,天生就是既可以做輸入,也可以是做輸出,它是雙向性的,類(lèi)似全局變量的特點(diǎn)。我們根據(jù)實(shí)際項(xiàng)目的情況,在
從業(yè)近十年!手把手教你單片機(jī)程序框架 第55講開(kāi)場(chǎng)白:上一節(jié)介紹的第2種方法,由于為函數(shù)多增加了一個(gè)數(shù)組輸入接口,已經(jīng)比第1種方法更加直觀了,但是由于只有輸入接口,沒(méi)有輸出接口,輸出接口仍然要靠全局變量數(shù)組
從業(yè)近十年!手把手教你單片機(jī)程序框架 第54講開(kāi)場(chǎng)白:如果不會(huì)指針,當(dāng)我們想把一個(gè)數(shù)組的數(shù)據(jù)傳遞進(jìn)某個(gè)函數(shù)內(nèi)部的時(shí)候,只能通過(guò)全局變量的方式,這種方法的缺點(diǎn)是閱讀不直觀,封裝性不強(qiáng),沒(méi)有面對(duì)用戶(hù)的輸入接口
從業(yè)近十年!手把手教你單片機(jī)程序框架 第53講開(kāi)場(chǎng)白:當(dāng)我們想把某種算法通過(guò)一個(gè)函數(shù)來(lái)實(shí)現(xiàn)的時(shí)候,如果不會(huì)指針,那么只有兩種方法。第1種:用不帶參數(shù)返回的空函數(shù)。這是最原始的做法,也是我當(dāng)年剛畢業(yè)就開(kāi)始做項(xiàng)
故障現(xiàn)象: 一輛配置4Y 發(fā)動(dòng)機(jī)的千禧款海獅汽車(chē)在60~70km/h 行駛時(shí),車(chē)速表指針時(shí)常會(huì)有跳動(dòng)。 故障診斷: 依車(chē)主提供的信息試車(chē),時(shí)速低于60km/h 時(shí)車(chē)速表正常,而超過(guò)60km/h 后,表針上升的同時(shí)還有一個(gè)跳動(dòng)