首页 > 解决方案 > 使用与字符数组类似的语法显示字符指针?

问题描述

因此,在数组中,您可以使用 [i] 从一个索引移动到下一个索引。我知道你可以通过增加指针的内存地址来做类似的事情:

pMyPointer++;

但是你可以使用与数组类似的语法(使用 [ ])遍历指针吗?我是 C 新手,所以如果可以,为什么,它是如何工作的,正确的语法是什么?我想它看起来像:

#define MAXLENGTH 5

...

char* pMyString = myString;

for(int i = 0; i < MAXLENGTH; i++)
    printf("%c", *pMyString[i])

标签: arrayscpointersoutput

解决方案


#define MAXLENGTH 5

...

char* pMyString = myString;//No &: if myString is an array, it's already an address, so no & needed

for(int i = 0; i < MAXLENGTH; i++)
{
    printf("%c", *pMyString); ++pMyString;
}

或者你可以printf("%c",pMyString[i]);

底线与上面的评论一样:您可以写成ptr[i]*(ptr+i)反之亦然-它们等同于同一件事。

这是一个更好的方法:

while (*pMyString)
{
  printf ("%c",*pMyString); ++pMyString;
}

这很酷的原因是你不再被绑定到 MAXLENGTH - 它会一直持续到它到达'\0'字符串字符的结尾。


推荐阅读