Che cosa fa l'aggiunta di uno a un array di caratteri in C Do?
Domanda
Sto guardando attraverso un codice a fini di apprendimento. Sto lavorando attraverso questa porzione di codice.
// e.g. const unsigned char data={0x1,0x7C ... }
unsigned char buf[40];
memset(buf,0,40);
buf[0] = 0x52;
memcpy(buf+1, data, length); // What does buf+1 do in this situation?
L'ultima riga in cui memcpy si chiama ciò che BUF + 1 fanno? buf è un array di caratteri, in modo da che cosa fa uno fare per essa?
Soluzione
In C, ogni nome di matrice è un puntatore, quindi BUF qui significa anche che il puntatore scegliere buf [0] "BUF + 1" Then significa "BUF [1]" s 'indirizzo.
Altri suggerimenti
buf+1
è equivalente a &(buf[1])
buf+1
è lo stesso di &(buf[1])
. In altre parole, restituisce un puntatore al 2 ° (indice 1) carattere di buf.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow