%s是什么意思c語(yǔ)言中 C語(yǔ)言指針可以相減嗎?為什么?
C語(yǔ)言指針可以相減嗎?為什么?如果兩個(gè)指針指向同一個(gè)數(shù)組,可以將它們相減,結(jié)果是兩個(gè)指針之間的元素?cái)?shù)。讓我們以本章開頭介紹的街道地址的類比為例。假設(shè)我住在第五大道118號(hào),我的鄰居住在第五大道124號(hào)
C語(yǔ)言指針可以相減嗎?為什么?
如果兩個(gè)指針指向同一個(gè)數(shù)組,可以將它們相減,結(jié)果是兩個(gè)指針之間的元素?cái)?shù)。讓我們以本章開頭介紹的街道地址的類比為例。假設(shè)我住在第五大道118號(hào),我的鄰居住在第五大道124號(hào)。每間房子的地址間距是2(我這邊的街道地址是連續(xù)的偶數(shù))。那么我鄰居的房子就是我房子前面的(124-118)/2(或3)房子(我鄰居的房子和我的房子分開兩個(gè)房子,即120和122)。指針之間的減法與上述方法相同。
在c語(yǔ)言的指針運(yùn)算中*(p 1)與p 1有什么區(qū)別p是指針?
第一句話應(yīng)該是p=p1。這兩句話的結(jié)果是一樣的,我相信房東知道它們都是p1的意思,然后結(jié)果存儲(chǔ)在p中,但是所有的研究和開發(fā)仍然是實(shí)驗(yàn)。如果我們遇到自加1的運(yùn)算,我們會(huì)選擇P,關(guān)鍵是P的運(yùn)算速度比P=p1的運(yùn)算速度快,盡管一個(gè)語(yǔ)句能說(shuō)它快多少塊?但步驟少,不僅提高了速度,而且降低了出錯(cuò)的概率,這對(duì)于工程來(lái)說(shuō)也非常重要,必須盡量減少不確定因素對(duì)程序的影響。我們來(lái)討論一下為什么有幾個(gè)步驟:當(dāng)計(jì)算P=p1時(shí),CPU的順序是1。首先,在P1的右邊找到P的地址。請(qǐng)記住,CPU不知道左邊的P和右邊的P是同一個(gè)地址。它將把這兩個(gè)P看作兩個(gè)不同的變量。2在右邊找到P的地址,然后加1,3。這一步是找到左邊P的地址。4.將結(jié)果賦給左邊的P。電腦不是很笨,是的,他很笨,但是他很快,而且他嚴(yán)格按照規(guī)則工作,所以一般不會(huì)有錯(cuò)誤。當(dāng)p被執(zhí)行時(shí)。1找到P的地址,然后加1完成??梢钥闯?,P=p1和P的結(jié)果是相同的,但計(jì)算過程不同。這就是區(qū)別。祝你進(jìn)步
c語(yǔ)言中指針變量可以相加嗎?其含義是什么?
指針變量有加減運(yùn)算,但要注意以下幾點(diǎn):1。指針變量存儲(chǔ)地址值,即數(shù)字地址。例如,指針變量的值是0x20000000,這意味著指針變量將位于0x20000000的內(nèi)存地址存儲(chǔ)在內(nèi)存中。指針變量可以加減,但只能用整數(shù)數(shù)據(jù)加減。此時(shí),加法或減法的含義不是對(duì)其地址值的加法或減法。換句話說(shuō),如果指針變量p的值是0x20000000,那么p=p 2的值不是0x20000002,它不是地址值的簡(jiǎn)單相加,因此地址值的加減多少與指針指向的數(shù)據(jù)類型有關(guān)。如果在32位操作系統(tǒng)上,P是指向整數(shù)數(shù)據(jù)的指針變量,那么在P=p2之后,P的地址值變成0x2000008,也就是說(shuō),地址值實(shí)際加了多少:sizeof(int)*2。為了說(shuō)明白點(diǎn),我們添加和減去的數(shù)字是由指針指向的數(shù)據(jù)類型度量的。p2表示P在內(nèi)存中向前移動(dòng)兩個(gè)int的距離。如果P不是int類型,而是其他類型,則相同。整數(shù)數(shù)據(jù)的指針減法也是如此。2指針可以減,但不能加:可以減去兩個(gè)相同類型的指針變量。它們的含義表示兩個(gè)指針指向的內(nèi)存位置之間分隔了多少個(gè)元素(請(qǐng)注意,它是一個(gè)元素,而不是字節(jié)數(shù))。例如,對(duì)于int類型的指針P和P1,P1-P的含義表示它們之間分隔了多少int類型的元素。其他類型的指針變量也是如此。指針變量的自加和自減實(shí)際上是整數(shù)1的加和減。三。大小可以在指針之間進(jìn)行比較。但是,它也僅限于同一類型的兩個(gè)指針變量,比較不同類型指針變量的大小是沒有意義的。指針之間大小比較的含義表示它們?cè)趦?nèi)存中指向的位置之間的高低關(guān)系。
c語(yǔ)言的指針中*操作符的本質(zhì)是什么?
總結(jié)一下:
1。*首先,一個(gè)算術(shù)運(yùn)算符
2。定義指針。例如,下面的定義語(yǔ)句:
int a
定義一個(gè)變量a,其數(shù)據(jù)類型為int
看下面的定義語(yǔ)句:
int*b
定義一個(gè)int*變量,如何理解int*可以如下:
*b是int type,它對(duì)應(yīng)一個(gè)存儲(chǔ)單元,它可以存儲(chǔ)int類型的數(shù)據(jù),這個(gè)單元的地址存儲(chǔ)在B中,此時(shí),B是int*數(shù)據(jù)。因此,您可以執(zhí)行以下操作
a=*b
但是反向操作是錯(cuò)誤的
b=a
您需要使用int類型變量來(lái)給出int*[b=&a
在這種情況下,帶有指針類型形式參數(shù)的函數(shù)調(diào)用方法是明確的。
理解時(shí)應(yīng)注意兩點(diǎn)*
1。在變量定義語(yǔ)句中出現(xiàn)時(shí),它與數(shù)據(jù)類型結(jié)合起來(lái)表示相應(yīng)數(shù)據(jù)類型的指針
2。在一般語(yǔ)句中出現(xiàn)時(shí),通常與指針變量相結(jié)合,即指針變量的存儲(chǔ)單元