我写了以下代码:

char arrayD[] = "asdf";
char *arraypointer = &arrayD;
while(*arraypointer != '\0'){
    printf("%s \n", arraypointer+1);
    arraypointer++;
}

我尝试%d%c打印每个字符。但是,有了%c,我得到了“?? ? ?”,对于%s,我得到“sd f sd f”。等等。我在这里遗漏了什么?

最佳答案

您打印的是指针地址,而不是指针指向的内容。另外,arrayD是地址,您不需要&arrayD。以下是一个完整的工作示例:

#include <stdio.h>
int main()
{
    char arrayD[] = "asdf";
    char *arraypointer = arrayD;
    while(*arraypointer != '\0'){
        printf("%c \n", *(arraypointer+1));
        arraypointer++;
    }
    return 0;
}

关于c - 如何使用指针打印字符数组中的每个字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54492875/

10-11 21:18