Kann jemand den Weg gerade auf die Disparitäten zwischen diesen allgegenwärtigen setzen, da es ein bisschen überwältigend werden kann.Klarheit zwischen Pointer-Pointer, Pointed-Value-Adresse und 2D-Array-Zugriff
Zum Beispiel, wenn ich eine 2D Array wie rec[3][2]
haben, bedeutet der folgende Zugriff dasselbe;
rec[0][0] = **rec
rec[i][0] = **(rec + i)
*(*(rec + i) + j) = rec[i][j]
Wenn dies der Fall ist, dann, was die Bedeutung von ihnen sind:
#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));
}
Was **(recptr + i)
ist, wird dieser Zugriff auf 2D-Zeiger oder ponter-to-Zeigerverweis?
foo(ptr2ptr)double **ptr2ptr;
{
int i=1, j=0;
if(**(ptr2ptr +i) > **(ptr2ptr + j))
{
double *tmp= *(recptr +i);
}
}
wieder, was der Unterschied zwischen *(recptr +i)
und **(ptr2ptr +i)
?! Ist der spätere 2D-Zugriff oder -Zugriff auf Zeiger-2-Ponter-Referenz und je früher das Objekt gezeigt?
möglich Duplikat [Ist Array einen Zeiger in C nennen?] (Http://stackoverflow.com/ Fragen/1641957/ist-array-name-a-pointer-in-c) –