【发布时间】:2016-08-25 09:55:23
【问题描述】:
int main(){
char *c=(char*)malloc(4*sizeof(char));
*c='a';
c++;
*c='b';
c++;
*c='c';
c++;
*c='\0';
printf("%s",c);
return 0;
}
使用此代码,我可以打印每个字符(例如 printf("%c",*(--c)); ),但是当我尝试使用 printf("%s",c); 打印整个字符串时,程序什么也没打印!为什么会这样?
【问题讨论】:
-
你已将
c增加到最后一个字符'\0'...所以没有可打印的内容。 -
当你
printf("%s",c);c指向\0时 -
@Jarod42 谢谢,明白了!
-
@DimChtz 谢谢,明白了!
-
这确实是一个错误,您应该能够自己检测到(是的,包括初学者)。下次请使用调试器,单步执行并在询问之前观察变量。