有人可以根據這些無處不在的不一致設置路徑,因爲它可以讓人有點頭腦清醒。指針指針,指向地址值和2D數組訪問的清晰度
例如,如果我有一個2D數組,如rec[3][2]
,以下訪問意味着相同;
rec[0][0] = **rec
rec[i][0] = **(rec + i)
*(*(rec + i) + j) = rec[i][j]
如果是這種情況,那麼什麼是這些含義:
#include <stdio.h>
double *recptr[3];
int i=1;
main()
{
double n1=12.0;
doublw n2=3.4;
recptr[0]= &n1;
recptr[1]= &n2;
printf("Amt: %.2f\n", **(recptr + i));
}
什麼是**(recptr + i)
,這是獲得2D指針或ponter到指針引用?
foo(ptr2ptr)double **ptr2ptr;
{
int i=1, j=0;
if(**(ptr2ptr +i) > **(ptr2ptr + j))
{
double *tmp= *(recptr +i);
}
}
又是什麼*(recptr +i)
和**(ptr2ptr +i)
區別?!是以後也2D訪問或訪問指針2 - ponter引用和對象指向?
可能重複[是數組名在C指針?](http://stackoverflow.com/問題/ 1641957 /是陣列名-A-指針在-c)的 – 2012-04-15 16:39:28