Это строка в стиле C, что означает, что это действительно массив символов с нулевым символом (код ASCII 0) в конце строки, указывающий, что это конец (компилятор вставляет его для вас, когдаон видит литерал).
Указатель символа указывает на первый символ в массиве (это происходит потому, что массивы распадаются на указатели всякий раз, когда этого требует контекст).
К указателям может быть применен синтаксис нижнего индекса p[i]
, который идентичен высказыванию *(p + i)
.Это общая идиома для доступа к i
-ому элементу массива с указателем на первый элемент.
Используя эти факты, вы можете перебирать все символы в массиве следующим образом:
// '\0' is the null character
for (int i = 0; aCharPointer[i] != '\0'; ++i) {
// Do something with aCharPointer[i]
}
или так:
for (char *p = aCharPointer; *p != '\0'; ++p) {
// Do something with *p
}
Вы также можете вызвать функцию, для которой требуется указатель символа на строку в стиле C:
#include <cstring>
size_t lengthOfString = strlen(aCharPointer);
Вы можете, изРазумеется, также вручную разыменовываем указатель:
assert(*aCharPointer == 'A');