Я знаю, что для данного целочисленного массива, указателя на этот целочисленный массив, я могу получить доступ к целочисленному массиву, используя что-то вроде этого:
int main(){
int x[4] = {0,1,2,3};
int *ptr;
ptr = x;
for(int i = 0; i < 4; i++){
printf("%d", *(ptr+i));
}
return 0;
}
Теперь скажите, что вместо этого у меня есть массив символов, делая То же самое не работает.
int main(){
char x[4] = "Haha";
char *ptr;
ptr = x;
for(int i = 0; i < 4; i++){
printf("%s", *(ptr+i));
}
return 0;
}
Очевидно, *(ptr+i)
в первом коде увеличивает указатель на целое число 4 байта каждый раз. Это не работает для второго кода. Как использовать те же обозначения для символьного массива? Я думаю, что идея состоит в том, чтобы увеличивать один символ каждый раз.