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語言中關於指向陣列的指標
char str 100 char pi str 相當於char pi pi str char ppi pi 這個地方抄錯了。應為char ppi pi 定義加 表明這是指標型別的變數 用的時候,就是用的指標,加 幹什麼。只有取指標所指變數的值,或給指標所指的變數賦值的等涉及指標所指的變數的時候,才...
關於C 指標
cin.getline就是獲得一個最大長度不超過20個字元的 19或者19以下 的字串,儲存在buffer裡面,這個時候buffer裡面已經儲存了一個字串 例如 abcde 0 因為c字串是以 0結束的。然後,將這個字串傳給函式str的時候 while str1 如果str的內容為0,那麼while...
c語言空指標野指標通用指標,C語言 空指標
野指標就是不知道指向 或者說不知道指向的記憶體是否可以使用,一般都是剛剛宣告但沒有初始化的指標。空指標不是指向常數0,只指向地址0,即null,其實換句話說,指標的本質就是地址嘛,空指標就是指標本身的值 地址 為0 空指標的作用是防止野指標的出現,因為我們不能知道野指標到底指向 所以我們也無法判斷一...