Я думаю, что это ниже, верно, и это может помочь.Не стесняйтесь исправлять это, если вы обнаружите какие-либо ошибки.Я новичок в C.
char str[]
- массив значений типа char, со своим собственным адресом в памяти
- массив значений типа char, со своим собственным адресом вПамять столько последовательных адресов, сколько элементов в массиве
, включая нулевой символ завершения '\0'
&str
, &str[0]
и str
, все три представляют одно и то же место в памяти, которое является адресомпервый элемент массива str
char * strPtr = & str [0];// объявление и инициализация
альтернативно, вы можете разделить это на две части:
char *strPtr; strPtr = &str[0];
strPtr
- указатель на
char
strPtr
точек на массиве
str
strPtr
- переменная со своим собственным адресом в памяти
strPtr
- это переменная, в которой хранится значение адреса
&str[0]
strPtr
собственный адрес в памяти отличается от адреса памяти, который он хранит (адрес массива в памяти aka & str [0])
&strPtr
представляет адрес самого strPtr
Я думаю, что вы можете объявить указатель на указатель следующим образом:
char **vPtr = &strPtr;
объявляет и инициализируетс адресом указателя strPtr
В качестве альтернативы вы можете разделить на две части:
char **vPtr;
*vPtr = &strPtr
*vPtr
указывает на указатель strPtr
*vPtr
- это переменная с собственным адресом в памяти
*vPtr
- это переменная, в которой хранится значение адреса & strPtr последний комментарий: вы не можете сделать
str++
,
str
адрес это
const
, но вы можете сделать
strPtr++