【问题标题】:Can't print a string array with a char pointer无法使用 char 指针打印字符串数组
【发布时间】:2020-05-09 17:31:31
【问题描述】:

我有这个代码:

#include <stdio.h>

int main(){
    char a[] = "ciao";

    char *aPtr = a;

    printf("%s\n", *aPtr);
}

它给了我这个警告:

8:17: warning: format specifies type 'char *' but the
      argument has type 'char' [-Wformat]
        printf("%s\n", *aPtr);
                ~~     ^~~~~
                %c
1 warning generated.

如果我运行它,我会遇到分段错误

Segmentation fault: 11

为什么?

【问题讨论】:

  • 删除*printf("%s\n", *aPtr); -> printf("%s\n", aPtr);。正如错误所说,当需要char*(对于%s)时,您正在传递char

标签: c arrays string pointers char


【解决方案1】:

删除 printf 中的“*”。您需要提供一个内存地址,以便函数能够查找字符串的其余部分。

printf("%s\n", aPtr);

您只是发送 printf 一个“c”(“ciao”的第一个字符)。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 1970-01-01
    相关资源
    最近更新 更多