Pregunta

Estoy mirando a través de un código con fines de aprendizaje. Estoy trabajando a través de esta porción de código.

// 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?

En la última línea, donde memcpy se llama, ¿qué buf + 1 lo hacen? buf es una matriz de caracteres, así que lo que hace +1 hacer con él?

¿Fue útil?

Solución

En C, cada nombre de la matriz es un puntero, así BUF aquí también significa el puntero que apuntan a buf [0] .A continuación, "buf + 1" significa "buf [1]" 's dirección.

Otros consejos

buf+1 es equivalente a &(buf[1])

buf+1 es el mismo que &(buf[1]). En otras palabras, devuelve un puntero a la segunda (índice 1) de carácter buf.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top