日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]前邊我們提到了,指針的意義往往在小程序里是體現(xiàn)不出來的,對于簡單程序來說,有時候用了指針,反而可能比沒用指針還麻煩,但是為了讓大家鞏固一下指針的用法,我還是寫了個使用指針的流水燈程序,目的是讓大家從簡

前邊我們提到了,指針的意義往往在小程序里是體現(xiàn)不出來的,對于簡單程序來說,有時候用了指針,反而可能比沒用指針還麻煩,但是為了讓大家鞏固一下指針的用法,我還是寫了個使用指針的流水燈程序,目的是讓大家從簡單程序開始了解指針,當(dāng)程序復(fù)雜的時候不至于手足無措。

#include

sbit ADDR0 = P1^0;

sbit ADDR1 = P1^1;

sbit ADDR2 = P1^2;

sbit ADDR3 = P1^3;

sbit ENLED = P1^4;

void ShiftLeft(unsigned char *p);

void main(){

unsigned int i;

unsigned char buf = 0x01;

ENLED = 0; //使能選擇獨(dú)立 LED

ADDR3 = 1;

ADDR2 = 1;

ADDR1 = 1;

ADDR0 = 0;

while (1){

P0 = ~buf; //緩沖值取反送到 P0 口

for (i=0; i<20000; i++); //延時

ShiftLeft(&buf); //緩沖值左移一位

if (buf == 0){ //如移位后為 0 則重賦初值

buf = 0x01;

}

}

}

/* 將指針變量 p 指向的字節(jié)左移一位 */

void ShiftLeft(unsigned char *p){

*p = *p << 1; //利用指針變量可以向函數(shù)外輸出運(yùn)算結(jié)果

}

這是一個使用指針實現(xiàn)流水燈的例子,純粹是為了講指針而寫這樣一段程序,程序中傳遞的是 buf 的地址,把這個地址直接傳遞給函數(shù) ShiftLeft 的形參指針變量 p,也就是 p 指向了 buf。對比之前的函數(shù)調(diào)用,大家是否看明白,如果是普通變量傳遞,只能單向的,也就是說,主函數(shù)傳遞給子函數(shù)的值,子函數(shù)只能使用卻不能改變。而現(xiàn)在我們傳遞的是指針,不僅僅子函數(shù)可以使用 buf 里邊的值,而且還可以對 buf 里邊的值進(jìn)行修改。


此外再強(qiáng)調(diào)一句,只要是*p 前邊帶了變量類型如 unsigned char,就是表示定義了一個指針變量 p,而執(zhí)行代碼中的*p,是指 p 所指向的內(nèi)容。


通過理論的學(xué)習(xí)和這樣一個例程,我想大家對指針應(yīng)該有概念了,至于它的靈活應(yīng)用,需要我們在后邊的程序中慢慢去體會,理論上就不再過多贅述了。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉