c - 在我的代码中,第二个 printf 没有打印任何值
问题描述
我的代码编译得很好,但我的代码的第二个printf没有打印。
#include<stdio.h>
int main()
{
char * const p="pointerconstant";
printf("%s",p);
*p='B';
printf("\n%s",p);
}
当我运行以下程序时,它输出..
pointerconstant
pointerconstant
不过应该..
pointerconstant
Bointerconstant
这里有什么问题?
解决方案
我认为您的问题类似:https ://stackoverflow.com/a/7547849/5809736
从@bdonlan 获取您的代码:请注意,如果您这样做,它将起作用:
char p[] = "pointerconstant";
printf("first=%s",p);
*p='B';
printf("\nsecond=%s",p);
这是因为我们正在初始化一个非常量字符数组。尽管语法看起来很相似,但编译器对它的处理方式不同。