Что делает добавление одного в массив персонажа в C?

StackOverflow https://stackoverflow.com/questions/1391583

Вопрос

Я просматриваю какой -то код для учебных целей. Я работаю над этой частью кода.

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

На последней строке, где называется Memcpy, что делает BUF+1? BUF - это массив персонажей, так что же делает с ним +1?

Это было полезно?

Решение

В C каждое имя массива является указателем, поэтому BUF здесь также означает указатель, который указывает на BUF [0]. Тогда «BUF+1» означает адрес «BUF [1]».

Другие советы

buf+1 эквивалентно &(buf[1])

buf+1 такой же как &(buf[1]). Анкет Другими словами, он возвращает указатель на 2 -й (индекс 1) символ BUF.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top