C語言指標陣列求輸出結果,為什麼

時間 2022-04-30 13:20:01

1樓:伊·梵

陣列是順序儲存的,給你畫個記憶體圖

2樓:匿名使用者

p賦予a[0][0]的地址後,*p就是1了,*(p+2)是a陣列裡第3個元素,也就是3,*(p+4)是第5個,也就是5,

m=(*p)*(*(p+2))*(*(p+4));是把它們3個乘起來乘起來是15

像這樣的二維陣列,用指標時把它看在一維的就可以了

3樓:幻想東方

答案是15

p是陣列起始位置指標,二維陣列在記憶體中的存法是一行一行的存。

(*p)是陣列的第一個元素,類似於p[0]=1;

(*(p+2))是類似於p[2]=3;

(*(p+4))是p[4]=5;

所以1*3*5=15。

4樓:

答案是:15

*p = 1

*(p+2)=3

*(p+4)=5

相乘等於15

感覺你就是看著太亂就不想分析,害怕了,其實不難,括號中間的*是乘法

5樓:匿名使用者

15*p 就是 a[0][0]

*(p+2)就是a[0][2]

*(p+4)就是a[1][0]

或者你乾脆就認為p是一維陣列,內容是

6樓:

15 可以看下二維指標在記憶體中的儲存形式

c語言指標輸出,C語言指標輸出 char str 2 printf c n , str printf x n , str printf x n ,str

在char str 2 中,str指向了字元 2 的地址,str的記憶體中裝的是字元 2 的地址,但自己也有一個地址,它的地址就是 str。getmemory str 傳入的是指標str自己的記憶體地址,而非它指向的地址 getmemory str 傳入的是指標str指向的地址,而非它自己的地址 首...

c語言問題,陣列與指標,C語言陣列和指標的問題

char a computer a指向一個常量字串,常量字串是不能修改的,而你的for迴圈內要修改a指向的這個常量字串,自然要出錯 char a computer 這個a就是個普通陣列了,它的內容是可以改動的,就不會出錯了 因為 a是個指標啊 所以應該賦值賦地址!所以 應該 char a compu...

c語言指標陣列問題,求高手解惑

錯誤很明顯啊,int length char p 需要一個char 引數,你的str 卻是char 是一個指標陣列,明顯型別不匹配 看你的程式,應該是想輸入一個字串並判斷其長度吧 你把char str 20 改成 char str 試試 include include int length char...