C語言精要總結(jié)-指針系列(二)

大學生就業(yè)培訓,高中生培訓,在職人員轉(zhuǎn)行培訓,企業(yè)團訓

 

此文為指針系列第二篇:

C語言精要總結(jié)-指針系列(一)

C語言精要總結(jié)-指針系列(二)

指針運算

前面提到過指針的解引用運算,除此之外,指針還能進行部分算數(shù)運算、關系運算

指針能進行的有意義的算術運算包括加減法運算,但不包括乘除運算。并且運算存在諸多限制。

加法運算

指針加法運算只適合指針與整數(shù),不能用在指針與指針。

指針加上或者減去一個整數(shù)n,是存儲的地址值加上或者減去n*指針指向類型的空間大小。也就是

結(jié)果指針 = 指針 ±  n * 指針指向類型空間大小。

例如int類型的整數(shù)指針+1,運算結(jié)果依然是一個整型指針,其存儲的地址值為原指針值+1*4,這是因為整型變量占用4個字節(jié)的空間。這個計算結(jié)果,恰好在當前指針指向基礎上,向下偏移指向下一個相同類型的空間。如下圖

 大學生就業(yè)培訓,高中生培訓,在職人員轉(zhuǎn)行培訓,企業(yè)團訓

指針與整數(shù)的加減法一般用在迭代連續(xù)的內(nèi)存空間-數(shù)組,如果運算得到的指針指向第一個元素之前或者最后一個元素之后,可能會產(chǎn)生非法讀寫內(nèi)存中斷,就像引用一個未初始化的指針一樣不可預知。

指針除了可以與整數(shù)做加減運算,連個指針之間還可以做減法運算(不能做加法運算)且必須是同類型的指針。運算結(jié)果為兩個指針指向地址之間,可以存放多少此類型的變量數(shù)(或其相反數(shù)),類型為ptrdiif_t類型(一種有符號整數(shù)類型)。

        		

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式