1樓:岔路程式緣
結果是60。
int(*p)[4];的含義:宣告p是指向含有4個整型元素的一維陣列的指標變數。其中:
星號*代表指標;圓括號()與後面的方括號搭配代表指向一維陣列;4一維陣列的元素個數;int代表一維陣列元素的變數型別為整型。
本例來講,宣告p並讓p指向a,其實p就把陣列a分成了三個一維陣列:1.3.
5.7、9.11.
13.15、17.19.
21.23;當p指向a時,其實就是指向了第乙個一維陣列,當然是指向第乙個元素1;而p+1就指向第二個一維陣列,當然也是它的第乙個元素9;依次類推。要取出元素的值,比如1,就要用*(*p+0)或**p;取出3,要用*(*p+1);取9,要用*(*(p+1)+0)或**(p+1);取11,要用*(*(p+1)+1);......
現在,你知道*(*(p+2)+2)是哪個元素了嗎?還有,23怎麼取出來?希望你已經學會了。
2樓:
不是*p[4]而是(*p)[4],這二者差遠了。int (*p)[4]=a;——宣告p是指向有4個int型元素的一維陣列的指標,並用二維陣列名a初始化。注意a就是&a[0]。
3樓:匿名使用者
(*p)[4]是指標陣列(其中存放的是位址),4代表長度
簡單的C語言問題,乙個簡單的C語言問題
c語言中 的優先順序是最高的!強制型別轉化比它低,所以第乙個a 3好理解 a int double 3 2 0.5 int 1.99 2 a int double 1 0.5 int 1.99 2 a int 1.5 int 1.99 2 a int 1.5 1 2 a int 3.5 a 3vb我...
c語言簡單問題
是不同的。p a 表示將陣列a的首位址賦值給了指標p那麼程式中兩個printf,含義分別是 1.列印陣列a的第乙個值的位址。2.列印a的位址 注意兩個含義的不同,千萬不要被p a這個賦值語句給蒙蔽了。不好意思,剛剛沒注意到乙個細節就是兩個格式輸出中有乙個是 d,乙個是 p 如果第二個也是 d,那麼它...
簡單的C語言的問題,問一下,乙個簡單的C語言的問題,問一下
a b c 1 已經賦值1給了c 對於 a b c 這個語句按理說是先分別執行a,b,c三個變數的自加,然後按 和 從右到左的結合順序,先做b c,然後再 a 剛才的結果 但是 c語言做了優化,這個語句先執行 a 由於後面接著的是 也就是說最後結果是看 a 其它運算的結果 所以,不管括號中的是什麼結...