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

2021-07-04 18:10:44 字數 1585 閱讀 3501

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 指標定義

在c 中,定義指標變數如你上面所述可以寫成 int a1。此時的a1為一個指標變數,其中可以存放一個int型別的變數的地址,也即所謂的a1即指向對應變數的指標。但是,定義以外的地方,例如程式中用到a1時寫成你上面寫的那個樣子 a1 其表示取a1所指向的地址中存放的內容 也就是說定義int a1,此時...

關於c語言指標和地址問題

針對第一個問題 是取地址符號,資料在計算機中儲存,有相應的地址能夠找到.陣列頭部就相當於一個指標,如果float x n 那麼x代表著陣列中的首地址,由於陣列在記憶體佔用的是連續儲存空間.因此也可以用指標去得到它的資料.你呼叫陣列的時候,其實也就是傳遞陣列的首地址給函式,那麼就不需要 符號了.然而你...

C語言指標問題,C語言指標問題

include int main void max min sz 0 for i 1 ip i printf max d position d n max,j 1 printf min d position d n min,k 1 return 0 c語言指標問題 10 最好貼上完整程bai序 或標...