指針指向數(shù)組的某個(gè)元素
- 夕逆IT
- 開發(fā)語(yǔ)言
- 2024-11-22
- 1
大家好,今天小編來(lái)為大家解答以下的問(wèn)題,關(guān)于指針指向數(shù)組的某個(gè)元素,指針指向數(shù)組元素時(shí),指針?biāo)阈g(shù)運(yùn)算才是有意義的這個(gè)很多人還不知道,現(xiàn)在讓我們一起來(lái)看看吧!文章目錄:...
大家好,今天小編來(lái)為大家解答以下的問(wèn)題,關(guān)于指針指向數(shù)組的某個(gè)元素,指針指向數(shù)組元素時(shí),指針?biāo)阈g(shù)運(yùn)算才是有意義的這個(gè)很多人還不知道,現(xiàn)在讓我們一起來(lái)看看吧!
文章目錄:
指針的與數(shù)組關(guān)系
1、指針:為某一個(gè)變量開辟單元格,指針便指向此單元格的變量值。數(shù)組:為某一組數(shù)開辟一組單元格,數(shù)組首便是你定義的數(shù)組變量名。數(shù)組和指針的唯一區(qū)別是,不能改變數(shù)組名稱指向的。
2、密切的關(guān)系。數(shù)組是一種存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu),而指針則是一種用于訪問(wèn)內(nèi)存的變量,數(shù)組是由相同類型的元素組成的序列,可以通過(guò)索引來(lái)訪問(wèn)其中的元素,數(shù)組的名稱實(shí)際上是一個(gè)指向數(shù)組首元素的指針,指針也可以用于訪問(wèn)數(shù)組的元素,還可以用于遍歷數(shù)組。
3、指針數(shù)組:它實(shí)際上是一個(gè)數(shù)組,數(shù)組的每個(gè)元素存放的是一個(gè)指針類型的元素。
4、數(shù)組是一塊內(nèi)存連續(xù)的數(shù)據(jù)。2,指針是一個(gè)指向內(nèi)存空間的變量。
5、內(nèi)存分配:數(shù)組在編譯時(shí)分配內(nèi)存空間,其大小在聲明時(shí)確定且固定不變。指針本身只占用固定大小的內(nèi)存(通常是4字節(jié)或8字節(jié),取決于和編譯器的實(shí)現(xiàn)),但它可以指向任何大小的內(nèi)存塊。操作方式:數(shù)組通常通過(guò)索引訪問(wèn)其元素,索引是相對(duì)于數(shù)組起始的偏移量。
6、聯(lián)系:如上面所說(shuō),數(shù)組只是定義在棧區(qū)的一個(gè)連續(xù)變量,它的首就是一個(gè)指針??偨Y(jié):不僅數(shù)組有指針,所有變量都有指針,指針說(shuō)白了就是內(nèi)存中的,就像一個(gè)房間必須有一個(gè)房間號(hào)。
c程序中如果p指向某二維數(shù)組的某個(gè)元素,那么p[i]是?
1、無(wú)論幾維數(shù)組,只要指針p已經(jīng)指向了某個(gè)元素,那么p[i]就是第i個(gè)元素值(i從0起算)。當(dāng)然i有限定的取值范圍。
2、數(shù)組可以看作是一行連續(xù)的數(shù)據(jù),只有一個(gè)下標(biāo),稱為一維數(shù)組。在實(shí)際問(wèn)題中有很多數(shù)據(jù)是二維的或多維的,因此C語(yǔ)言允許構(gòu)造多維數(shù)組。多維數(shù)組元素有多個(gè)下標(biāo),以確定它在數(shù)組中的位置。本節(jié)只介紹二維數(shù)組,多維數(shù)組可由二維數(shù)組類推而得到。
3、p[i]:定義元素類型是指針的數(shù)組,同樣的“i”應(yīng)該是整型的。
4、int a[3][3]相當(dāng)于定義了int** a;當(dāng)然就和int* p不一樣了。
一個(gè)用指針變量指向數(shù)組元素的問(wèn)題
數(shù)組實(shí)質(zhì)上是指向一段連續(xù)內(nèi)存區(qū)域起始的指針,所以int[10]可以給int*,這樣只會(huì)造成數(shù)組退化(編譯時(shí)長(zhǎng)度信息丟失)。p = a永遠(yuǎn)不會(huì)錯(cuò),因?yàn)槟阒皇菍的值賦給了p所指向的內(nèi)存區(qū)域,這句在編譯時(shí)永不會(huì)報(bào)錯(cuò)。
首先你要明白一點(diǎn),數(shù)組名和指針本質(zhì)上是一回事,都是,該數(shù)組的首。知道這一點(diǎn)后就可以活學(xué)活用了。這是c語(yǔ)言的精髓。
int *p=a ; //定義一維指針p,并指向數(shù)組a首。p=a+2 ; //指向數(shù)組a的第三個(gè)元素 或?qū)懗桑簆= &a[2] ; //通過(guò)&運(yùn)算符號(hào)來(lái)取a[2]的,賦值給p p=&a ; //這是錯(cuò)誤的語(yǔ)句!因?yàn)椋?a的類型是int **, 而p是int *類型,所以,類型不相符,不能進(jìn)行賦值操作。
關(guān)于本次指針指向數(shù)組的某個(gè)元素和指針指向數(shù)組元素時(shí),指針?biāo)阈g(shù)運(yùn)算才是有意義的的問(wèn)題分享到這里就結(jié)束了,如果解決了您的問(wèn)題,我們非常高興。
本文鏈接:http://xinin56.com/kaifa/227492.html