今天覆習了一下c語言的指標題目,發現在很多**結果題目中都出現了表示式*p++、**++p和++*p,而這幾個表示式特別容易混淆。
那麼通過什麼方式區分他們呢,答案就是運算子優先順序。
++和 *(指標訪問運算子)優先順序相同,根據從右往左的結合性,因此等價於 *(p++),又因為後置++是先使用再自加,所以先取值 *p,然後再讓p加1.
*++p
++和 *(指標訪問運算子)優先順序相同,根據從右往左的結合性,因此等價於 *(++p),也就是先讓指標p加1,再取此時指標p的值。
++*p
++和 (指標訪問運算子)優先順序相同,根據從右往左的結合性,因此先取p的值p,然後再將值 *p加1。
可以將其做成**
a=第一步
第二步*p++
*pp++
*++p
++p*(++p)
++*p
*p(*p)+1
C語言之指標 p 和 p 區別
在c語言的指標運算中,經常會碰到以下用法 p p p p 在解決問題前,先了解一下基礎 1 號和 符號屬於同級運算,且優先運算順序是從右到左。2 a 表示 在當前一整句 中,a取原值,等該句 執行完畢 乙個分號表示一句 下一句 執行前,a會在原值基礎上加1。可以通過以下 理解 假設int a 3 那...
p 和 p的區別
p 和 p的區別 舉例,如清單3 cpp view plain copy include intmain void int p arr inta p 等價於a p 即a p p p 1 intb p 等價於b p 即p p 1 b p printf a d,b d n a,b return 0 例子...
c語言中的指標 p
一 什麼是指標 定義乙個變數,系統會為變數分配記憶體單元,記憶體單元的每乙個位元組有乙個編號,這個編號就是位址,所以這個位址就指向該變數單元,位址形象化地稱為 指標 也就是說通過它可以找到以它為位址的記憶體單元。二 指標變數 定義指標變數 基型別 變數名 int name 整型 char name ...