有人可以为这些无处不在的差异指明道路吗,因为它可能有点令人兴奋。
例如,如果我有一个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 指针还是指针对指针的引用?
foo(ptr2ptr)double **ptr2ptr;
{
int i=1, j=0;
if(**(ptr2ptr +i) > **(ptr2ptr + j))
{
double *tmp= *(recptr +i);
}
}
*(recptr +i)
和 又有什么区别**(ptr2ptr +i)
?!是后来的二维访问还是对指针 2-ponter 引用的访问以及对象指向的时间越早?