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序 或標...