首页 > 解决方案 > 在我的代码中,第二个 printf 没有打印任何值

问题描述

我的代码编译得很好,但我的代码的第二个printf没有打印。

#include<stdio.h>

int main()
{
    char * const p="pointerconstant";

    printf("%s",p);

    *p='B';

    printf("\n%s",p);
}

当我运行以下程序时,它输出..

pointerconstant
pointerconstant

不过应该..

pointerconstant
Bointerconstant

这里有什么问题?

标签: c

解决方案


我认为您的问题类似:https ://stackoverflow.com/a/7547849/5809736

从@bdonlan 获取您的代码:请注意,如果您这样做,它将起作用:

    char p[] = "pointerconstant";
    printf("first=%s",p);
    *p='B';
    printf("\nsecond=%s",p);

这是因为我们正在初始化一个非常量字符数组。尽管语法看起来很相似,但编译器对它的处理方式不同。


推荐阅读