通常機(jī)器都有一系列的連續(xù)編號(hào)或編址的存儲(chǔ)單元,這些存儲(chǔ)單元可以單個(gè)進(jìn)行操縱,也可以連續(xù)成組的方式進(jìn)行操縱。通常情況下,機(jī)器的一個(gè)字節(jié)可以存放一個(gè)char類(lèi)型的數(shù)據(jù),兩個(gè)相鄰的字節(jié)存儲(chǔ)單元可存儲(chǔ)一個(gè)short(短整型)類(lèi)型的數(shù)據(jù)。
下面小編給大家整理了C語(yǔ)言指針與數(shù)組知識(shí)點(diǎn)講解,最近在學(xué)習(xí)c語(yǔ)言的指針與數(shù)組,在學(xué)習(xí)的過(guò)程中順便把指針這章節(jié)的部分知識(shí)點(diǎn)簡(jiǎn)要的羅列下,以幫助理解記憶。
兩個(gè)符號(hào):
1、一元運(yùn)算符*是間接尋址或間接引用運(yùn)算符。 當(dāng)它作用與指針時(shí),將訪問(wèn)指針?biāo)赶虻膶?duì)象。
2、&為地址運(yùn)算符。它只能應(yīng)用與內(nèi)存中的對(duì)象,即變量與數(shù)組元素。它不能作用與表達(dá)式、常量或register類(lèi)型的變量。
指針定義:
指針是一種變量,它是保存變量地址的變量。
指針與地址
通常機(jī)器都有一系列的連續(xù)編號(hào)或編址的存儲(chǔ)單元,這些存儲(chǔ)單元可以單個(gè)進(jìn)行操縱,也可以連續(xù)成組的方式進(jìn)行操縱。通常情況下,機(jī)器的一個(gè)字節(jié)可以存放一個(gè)char類(lèi)型的數(shù)據(jù),兩個(gè)相鄰的字節(jié)存儲(chǔ)單元可存儲(chǔ)一個(gè)short(短整型)類(lèi)型的數(shù)據(jù),而4個(gè)相鄰的字節(jié)存儲(chǔ)單元便可存儲(chǔ)一個(gè)long(長(zhǎng)整型)類(lèi)型的數(shù)據(jù)。指針是能夠存放一個(gè)地址的一組存儲(chǔ)單元(通常為兩個(gè)或四個(gè)字節(jié))。
簡(jiǎn)單示例:
注意:
指針只能指向某種特定類(lèi)型的對(duì)象,也就是說(shuō),每個(gè)指針都必須指向某種特定的數(shù)據(jù)類(lèi)型。而void類(lèi)型的指針則可以存放指向任何類(lèi)型的指針,但它不能引用自身。
運(yùn)算符優(yōu)先級(jí):
一元運(yùn)算符*和&的優(yōu)先級(jí)比算術(shù)運(yùn)算符的優(yōu)先級(jí)要高。形如a=*p + 1則執(zhí)行*p指向的對(duì)象的值取出并加1操作,然后再將結(jié)果賦值給a。而*p +=1則是將p指向的對(duì)象的值加1。
*p +=1 <=>++*p或(*p)++ 一元運(yùn)算符遵循從右至左的結(jié)合順序。
最后補(bǔ)充一點(diǎn):
由于指針也是變量,所以在程序中可以直接使用,而不必通過(guò)間接引用的方法使用。
指針與函數(shù)參數(shù)
由于c語(yǔ)言是以傳值的方式將參數(shù)值傳遞給被調(diào)用函數(shù),因此被調(diào)用函數(shù)不能直接修改主調(diào)用函數(shù)中變量的值,即使要修改,也只是修改了變量參數(shù)副本的值。