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

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 一、指針是地址各種類(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)存地址為指針。二、指針變量是

一、指針是地址
各種類(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)存地址為指針。


二、指針變量是存放地址的變量
如果我們定義了一些變量來(lái)存放數(shù)據(jù)的地址(指針),這樣的變量就是指針變量。也就是說(shuō),指針變量有兩個(gè)特征:首先它作為變量會(huì)分配內(nèi)存空間;其次,它存放的內(nèi)容應(yīng)該是內(nèi)存地址。

比如,當(dāng)我們聲明了一個(gè)整形變量i并且賦予初始值10;同時(shí)我們聲明了一個(gè)整形的指針變量p,將它指向變量i。當(dāng)我們運(yùn)行代碼時(shí),內(nèi)存中可能是這樣的:

i -> |0AH| FFF0H

|00H|FFF1H
|...|
p -> |0F0H | FFFAH

|0FFH|FFFBH

三、一維數(shù)組是指針,它指向數(shù)組首(元素)地址
1. 代碼int a[3] = {1, 2, 3}; 定義了一個(gè)包含3個(gè)元素的整形一維數(shù)組。在引用數(shù)組元素時(shí),我們使用“a[下標(biāo)]”的格式;在引用數(shù)組時(shí),我們直接使用數(shù)組名a。而數(shù)組名a表示(指向)數(shù)組首元素的地址(指針)

測(cè)試代碼:
int a[3] = {1, 2, 3};
printf("a = %xn", a);
printf("&a[0] = %xn", &a[0]);

執(zhí)行結(jié)果:
a= fff0
&a[0] = fff0


2. 由于一維數(shù)組是指針,所以可以按照指針來(lái)操作它: 一維數(shù)組指向數(shù)組首元素,所以在一維數(shù)組前加一元操作符“*”可以返回第一個(gè)元素的值。比如:


測(cè)試代碼:
int a[3] = {1, 2, 3};
printf("*a = %xn", *a);
printf("a[0] = %xn", a[0]);

執(zhí)行結(jié)果:
*a= 1
a[0] = 1


四、一維數(shù)組(名)不是指針變量
上面的測(cè)試代碼中,數(shù)組名a是一個(gè)指針變量嗎? 如果數(shù)組名a是一個(gè)指針變量,那么,它在應(yīng)該會(huì)被分配獨(dú)立的存儲(chǔ)空間(有自己的地址),并且它的值應(yīng)該是數(shù)組首地址,如圖:


指針變量a -> | 0F0H | xxxxH

| 0FFH | yyyyH

...
元素a[0]-> |01H| FFF0H

|00H| FFF1H
|02H| FFF2H
|00H| FFF3H
|03H| FFF4H
|00H| FFF5H

下面,我們?cè)僮鲆粋€(gè)試驗(yàn):
int a[3] = {1, 2, 3};
printf("&a = %xn", &a);
printf("a= %xn", a);
printf("*a = %xn", *a);
printf("a[0] = %xn", a[0]);

執(zhí)行結(jié)果:
&a = fff0
a= fff0
*a = fff0
a[0] = 1


執(zhí)行結(jié)果很奇怪,如果按照結(jié)果畫(huà)出內(nèi)存示意圖,似乎是這樣的:


指針變量a -> | 0F0H |FFF0H

| 0FFH |FFF1H

...
元素a[0]-> |01H|FFF0H

|00H|FFF1H
|02H| FFF2H
|00H| FFF3H
|03H| FFF4H
|00H| FFF5H


奇怪在哪里? ------ 怎么可能有兩個(gè)內(nèi)存空間的地址相同呢(FFF0H)? 當(dāng)然不可能,這正好說(shuō)明數(shù)組名a并不是一個(gè)指針變量因?yàn)樗鼪](méi)有自己的存貯空間。這些奇怪的結(jié)果是編譯器在編譯期間根據(jù)另外的規(guī)則做出的處理。


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