Что делает добавление одного в массив персонажа в C?
Вопрос
Я просматриваю какой -то код для учебных целей. Я работаю над этой частью кода.
// 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.
Не связан с StackOverflow