c語(yǔ)言怎么讓指針指向數(shù)組 指向整型數(shù)組的指針如何用?
指向整型數(shù)組的指針如何用?數(shù)組指針(也稱(chēng)為行指針)定義int (*p)[10]()具有高優(yōu)先級(jí)。首先,它意味著P是一個(gè)指向整數(shù)一維數(shù)組的指針。這個(gè)一維數(shù)組的長(zhǎng)度是10,也可以說(shuō)是P的步長(zhǎng),也就是說(shuō)當(dāng)執(zhí)
指向整型數(shù)組的指針如何用?
數(shù)組指針(也稱(chēng)為行指針)
定義int (*p)[10]
()具有高優(yōu)先級(jí)。首先,它意味著P是一個(gè)指向整數(shù)一維數(shù)組的指針。這個(gè)一維數(shù)組的長(zhǎng)度是10,也可以說(shuō)是P的步長(zhǎng),也就是說(shuō)當(dāng)執(zhí)行p 1時(shí),P會(huì)跨越10個(gè)整數(shù)數(shù)據(jù)的長(zhǎng)度。
示例:
Int (*p): //這個(gè)語(yǔ)句定義了一個(gè)數(shù)組指針,指向一個(gè)有四個(gè)元素的一維數(shù)組。
所以數(shù)組指針也叫一維數(shù)組指針,也叫行指針。
點(diǎn)陣
定義int *p[n]
[]具有高優(yōu)先級(jí)。先和P組合成一個(gè)數(shù)組,然后int*顯示這是一個(gè)整數(shù)指針數(shù)組,有n個(gè)指針類(lèi)型數(shù)組元素。這里執(zhí)行p 1,那么p指向下一個(gè)數(shù)組元素,所以賦值是錯(cuò)誤的:pa;因?yàn)閜是不可知的表示,只存在。P[0],p
指向整型數(shù)組的指針如何用?
,pc語(yǔ)言為什么能把數(shù)組的地址賦值給指針?
...p[n-1],它們是指針變量,可以用來(lái)存儲(chǔ)變量地址。但也可以是這樣的*pa其中*p代表指針數(shù)組第一個(gè)元素的值和a的第一個(gè)地址的值。將二維數(shù)組分配給指針數(shù)組:
int *p
C語(yǔ)言數(shù)組下標(biāo)和指針的關(guān)系?
int a
C語(yǔ)言數(shù)組下標(biāo)和指針的關(guān)系?
:P //這個(gè)語(yǔ)句表示p數(shù)組指向下一個(gè)數(shù)組元素。注意:這個(gè)數(shù)組的每個(gè)元素都是一個(gè)指針。
對(duì)于(i0ilt3i)
p[i]a[i]
這里int *p
C語(yǔ)言數(shù)組下標(biāo)和指針的關(guān)系?
是指一維數(shù)組中有三個(gè)指針變量,分別是p[0],p指向整型數(shù)組的指針如何用?
和pc語(yǔ)言為什么能把數(shù)組的地址賦值給指針?
。所以要分別賦值。
這樣,兩者的區(qū)別就清楚了。數(shù)組指針只是一個(gè)指針變量,在C語(yǔ)言中似乎是專(zhuān)門(mén)用來(lái)指向二維數(shù)組的,它占用了內(nèi)存中一個(gè)指針的存儲(chǔ)空間。指針數(shù)組是多個(gè)指針變量,以數(shù)組的形式存在于內(nèi)存中,占用多個(gè)指針的存儲(chǔ)空間。
C語(yǔ)言30天核心突破
c語(yǔ)言為什么能把數(shù)組的地址賦值給指針?
數(shù)組的地址是指數(shù)組第一個(gè)元素的地址。因?yàn)閿?shù)組在內(nèi)存中不斷分配存儲(chǔ)空間,所以當(dāng)然可以賦給一個(gè)指針,數(shù)組的元素也可以通過(guò)這個(gè)指針來(lái)訪問(wèn)。
C語(yǔ)言數(shù)組下標(biāo)和指針的關(guān)系?
指針和數(shù)組是C語(yǔ)言中兩個(gè)非常重要的概念,它們之間有著密切的聯(lián)系。利用這種關(guān)系,可以提高處理數(shù)組的靈活性,加快運(yùn)行速度。本文重點(diǎn)討論指針和數(shù)組的關(guān)系及其在編程中的應(yīng)用。1.時(shí)指針和數(shù)組之間的關(guān)系當(dāng)指針變量被初始化為數(shù)組名時(shí),就說(shuō)指針變量指向一個(gè)數(shù)組。例如:charstr [20],* ptrptr strptr設(shè)置為數(shù)組str的第一個(gè)元素的地址,因?yàn)閿?shù)組名是數(shù)組的第一個(gè)地址。它也是數(shù)組第一個(gè)元素的地址。此時(shí)可以認(rèn)為指針ptr是數(shù)組str(否則不成立),這樣數(shù)組的原始處理就可以用指針實(shí)現(xiàn)了。例如,對(duì)數(shù)組元素的訪問(wèn)可以用下標(biāo)變量或指針來(lái)訪問(wèn)。2.指向一個(gè)數(shù)組元素如果的指針定義如下:int a [10],* papaa,pampa[0]將數(shù)組第一個(gè)元素的地址賦給指針變量p,實(shí)際上C語(yǔ)言中的數(shù)組名就是數(shù)組的第一個(gè)地址,所以第一個(gè)元素 s可以通過(guò)兩種獲得地址:pampa[0]或pa。這兩種方法在形式上很相似,但區(qū)別在于pa是指針變量,A是數(shù)組名。值得注意的是,pa是變量指針,而A是常量。因?yàn)橐坏┟枋隽藬?shù)組,數(shù)字組的地址是固定的,因此不能更改。不允許使用A,A或語(yǔ)句A 10,而PA,PA和PA 10是正確的。因此,指針和數(shù)組此時(shí)是集成的。3.指針和一維數(shù)組理解指針和要了解一維數(shù)組之間的關(guān)系,首先要了解一維數(shù)組的存儲(chǔ)組織形式,以及編譯系統(tǒng)中對(duì)數(shù)組元素的訪問(wèn)方法。一維數(shù)組是一個(gè)線性表,存儲(chǔ)在一個(gè)連續(xù)的內(nèi)存單元中。c語(yǔ)言通過(guò)在數(shù)組名(數(shù)組的起始地址)上加上相來(lái)訪問(wèn)數(shù)組。對(duì)于起始地址的相對(duì)量(由下標(biāo)變量給定),獲取要訪問(wèn)的數(shù)組元素的單元地址,然后訪問(wèn)計(jì)算出的單元地址的內(nèi)容。通常,一種數(shù)據(jù)類(lèi)型在一個(gè)單位中所占的字節(jié)數(shù)稱(chēng)為放大因子。事實(shí)上,編譯系統(tǒng)將數(shù)組元素a[i]進(jìn)入* (a i)之前的操作。對(duì)于一般數(shù)組元素的形式:lt數(shù)組名gt[lt下標(biāo)表達(dá)式gt],編譯器將其轉(zhuǎn)換為:* (lt數(shù)組名gt lt下標(biāo)表達(dá)式gt),其中下標(biāo)表達(dá)式為:下標(biāo)表達(dá)式*放大因子。。整個(gè)公式的計(jì)算結(jié)果是一個(gè)內(nèi)存地址,最后的結(jié)果是:* lt地址,gtlt地址對(duì)應(yīng)的單元的地址的內(nèi)容gt。可以看出,C語(yǔ)言對(duì)數(shù)組的處理,其實(shí)就是將其轉(zhuǎn)換成指針地址的操作。數(shù)組和指針是秘密結(jié)合的。因此,任何下標(biāo)能做的事,指針都能做。沒(méi)有下標(biāo)的數(shù)組名是指向數(shù)組的指針。4.指針和多維數(shù)組的指針變量可以指向一維數(shù)組或多維數(shù)組。但在概念和使用上,多維數(shù)組的指針比高于多維數(shù)組指向一維數(shù)組的指針更復(fù)雜。比如三維數(shù)組中,引用元素c[i][j][k]的地址計(jì)算最終會(huì)改為:* (* (* (c i) j) k)。在了解了多維數(shù)組的存儲(chǔ)形式和訪問(wèn)多維數(shù)組元素的內(nèi)部轉(zhuǎn)換公式后,看看指針變量指向多維數(shù)組及其元素的情況。1指向數(shù)組元素的指針變量如下:int a