關於c指標的題,C語言關於指標的一道題。

時間 2021-07-04 18:11:16

1樓:漫遊靜心

1、定義一個int型二維陣列,會在記憶體中分配一段連續的空間,存放這些數。按照你的定義,是8個數,一個int型是4個位元組,所以你定義的陣列一共佔用了32個位元組,這32個位元組的首地址為:0x0064fd38。

2、陣列名是這32位元組的首地址,是一個指標,但是可以理解為被const修飾的指標,意思就是這個值是不能改變的,不能對zippo進行賦值等操作。

3、因為是二維陣列,zippo+1,的意思是的數”6“的首地址,*zippo+1的意思是4的首地址。

4、*zippo+1,這種寫法不好。不要用系統自帶的優先順序,想先幹嘛後幹嘛,就加上括號。讓人一目瞭然,這樣寫在工作中會被批評的。

5、*的優先順序高,+號的優先順序低,所以先執行:*zippo,這個時候的值就是”2“的首地址,然後再+1,就變成了”4“的首地址。

6、指標+1,與普通的數+1是不一樣的,指標+1的意思是:1乘以資料的型別。所以實際是:

地址加了4個位元組,所以尾數為3c.

7、那麼zippo+1為什麼是6的首地址呢?因為zippo是整個陣列的首地址,所以他加上1,直接就跳了一行,跳到了下一行,也就是6.*zippo是第一行資料的首地址,所以他加上1的意思就是:

跳一個數,跳到了4上。雖然他們的值都是一樣的,但是意思大不相同

8、zippo[0]:0x0064fd38.就是這個。

2樓:

zippo[i][j] 是二維陣列。zippo是整陣列的首地址,zippo[0]實際上還是一個地址,是zippo[0][0]的地址。

3樓:匿名使用者

對於陣列,有 *zippo = zippo = 0x0064fd38

對於非空指標p, *p 定義為 p[0].

於是:*zippo == zippo[0] = &(zippo[0][0]) = 0x0064fd38

*zippo + 1 == &(zippo[0] [0]) + 1 == &(zippo[0][1])

注意zippo[0][0]是int, 所以*zippo是int型指標, 故

*zippo + 1 = *zippo + sizeof(int) = 0x0064fd38 + 4 = 0x0064fd3c

4樓:匿名使用者

此為二維陣列,第一維相當於是指標,*zippo是指標,指向zippo[0][0],zippo[0]值是0x0064fd38

c語言關於指標的一道題。

5樓:匿名使用者

sum=sum+(*p); 二維陣列的指標不是怎麼用的吧···直接加個一就相當於指向了第二行的首地址了···

6樓:匿名使用者

printf("%5.2f",*((*(p+n-1))+i));

c語言指標簡單的程式設計題 5

7樓:匿名使用者

int main()

ptrdouble = &a[10];

//輸出後是個值

for (i = 0; i<10;i++)printf("%f",result);};

C語言關於指標的一道題,C語言關於指標的一道選擇題

sum sum p 二維陣列的指標不是怎麼用的吧 直接加個一就相當於指向了第二行的首位址了 printf 5.2f p n 1 i c語言關於指標的一道選擇題 d 第一次列印 p 先取值後 也就是列印完p的位址才偏移的。k p,那麼 k就等價於 p,所以列印的是第二個陣列的值 c語言指標的一道題 岔...

c語言關於指標的求解,C語言中關於指標的指標問題?

出釹 int x 10 p1 a x 3 x 3 3 陣列從0開始,3其實是第四個 b p1 x 3,p1 先執行p1 x 3,也就是指向x 3 因為p1定義成指標。p1 這時候先執行再加,這表示式仍然是3 c p1 x 2,p1 p x 2 x陣列的地址加2,也就是指向x 2 x 2,這時候p 同...

關於c語言指標的問題,乙個關於c語言指標的問題

二維陣列相當於乙個一維陣列裡面的元素都是一維陣列 二維陣列名也相當於乙個二級指標。一維陣列 a a 0 二維陣列 a a 0 a 0 0 通俗點寫就是a a 0 a 0 a 0 0 因為 a 0 a 0 0 所以a於 a指向同乙個位址 a 0 0 則 a a 0 0 include int main...