это указатель на первый элемент массива без знака char. Это правильно?
uint8_t*
- указатель на объект типа uint8_t
. Если uint8_t
является псевдонимом unsigned char
, то uint8_t*
действительно является указателем на unsigned char
.
Он может указывать либо на ноль, либо на адрес, который не имеет объекта (висячий указатель), или он может указывать на объект. Мы не можем сказать, является ли этот указанный объект первым элементом массива. Если документация getData
говорит, что это так, то лучшее, что мы можем сделать, это предположить, что это не ложь. Если документации нет, нам нужно увидеть реализацию, чтобы знать, что она делает.
1) Как напечатать данные значения, на которые указывает C ++?
Хотя printf
доступен и в C ++, общеизвестно, что его трудно правильно использовать новичкам (на самом деле, ваши предложения не были бы правильными). Предпочтительно, вы можете вставить объект в std::cout
из заголовка <iostream>
, чтобы распечатать его (используя оператор вставки потока <<
). Пример:
std::cout << data[0];
Однако, если uint8_t
действительно является псевдонимом unsigned char
, тогда данные будут передаваться в виде символа. Если вы хотите передать целочисленное значение, сначала вам нужно преобразовать значение в целочисленный тип не из символов:
std::cout << int(data[0]);
Чтобы напечатать структуру данных, такую как массив, вы можете перебрать массив и напечатать каждый элемент,
2) Есть ли способ перебора (в цикле) значения данных, указывающего на?
Да.
Однако для итерации массива необходимо каким-то образом знать, когда прекратить итерацию. Это то же самое, что знать, где заканчивается массив. Это также то, что документация getData
должна раскрыть. Имеет ли массив постоянную длину? Массив завершается каким-то значением? Устанавливает ли она некоторую глобальную переменную, которая дает нам длину массива? Может быть; мы не можем знать.
Вы можете использовать следующий алгоритм:
1 let the pointer point to the first element of the array
2 if the pointer points to the end of the array, you're done
3 indirect the pointer to get the value at current index
4 you you can now for example print the value
5 increment the pointer
6 jump to 2