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