Array,struct e dintorni

di il
4 risposte

Array,struct e dintorni

Salve a tutti!!!
Potreste chiarirmi il seguente fatto ossia che il nome di un array corrisponde all'indirizzo della sua prima cella di memoria?
se ho una funzione che riceve come parametro un puntatore ad un intero allora a quetsa funzione posso passarci tranquillamente il nome di un array di interi precedentemente dichiarato,invece,non funziona se ci passo ad esempio la cella numero 3;faccio un esempio per essere più chiaro:

#include<stdio.h>

void funct(int *p);
int main(){
 int vett[5]={1,2,3,4,5}
 printf("\nValore del terzo elemento: %d ",vett[2]);
 funct(vett);
 printf("\Valore del terzo elemento: %d",vett[2]);
 return 0;
}

void funct(int *p){
 *(p+2)=*(p+2)+5;
}
invece non posso fare: funct(vett[2]); perchè solo il nome del vettore corrisponde ad un puntatore(in particolare un puntatore che punta alla prima cella del'array).Giusto??
E per quanto riguarda le matrici o in generale array multidimensionali?
Per quanto riguarda le struct vale lo stesso discorso,ossia che il nome di una struct corrisponde ad un puntatore al suo primo campo?Sempre sulle struct: i vari campi di una struct sono rappresentati in maniera contigua in memoria così come le celle di un array?
Attendo chiarimenti grazie.
Mi scuso se le domande sono piuttosto banali ma non riesco proprio a chiarirmi questi concetti..

4 Risposte

Devi accedere o registrarti per scrivere nel forum
4 risposte