int* A[n];
Una prima è una matrice, indipendentemente dal tipo di elemento. Dopo aver applicato il puntatore *, sappiamo che A è una matrice di puntatori int.
int (*A)[n];
Applicando le parentesi, il puntatore * ha precedenza più alta sull'array [] in questo caso. Quindi A è prima di tutto un puntatore indipendentemente da ciò a cui punta. Dopo aver applicato l'array [], sappiamo che A è un puntatore a un array di int.
int *(A[n]);
Staffe non cambieranno alcun ordine di precedenza che potrebbero influenzare l'array [], quindi parentesi rimozione sarebbero yeild int* A[n]
stesso del vostro primo caso.
Are array pointers?
No. Array è un datastructure che alloca pool di memoria e memorizza i dati sequenzialmente dove come Pointer punti ad un determinato indice di pool di memoria ei riferimenti i dati memorizzati in tale posizione di memoria.
fonte
2016-02-22 08:37:22
Gli array possono * decadere * su un puntatore al loro primo elemento, ma non è un puntatore. Ad esempio, quando si passa una matrice a una funzione o si utilizza l'aritmetica del puntatore, questo decadimento si verifica. –
@JoachimPileborg Quando si passa un array a una funzione * il cui parametro è un puntatore *. In pratica si utilizza il nome di un array per inizializzarlo o assegnarlo a un puntatore che lo fa, non passando a una funzione. – juanchopanza
impara la regola della spirale in senso orario e non sarai mai più confuso riguardo alle dichiarazioni complesse. http: // StackOverflow.it/a/31789222/3758484 – johnbakers