【发布时间】:2018-08-04 23:49:40
【问题描述】:
为什么我运行这个程序没有输出。
#include<stdio.h>
int main()
{
char* t="C++";
t[1]='p';
t[2]='p';
printf("%s",t);
return 0;
}
【问题讨论】:
-
main返回int,而不是void。 -
如果没有
'\n',printf()输出可能不会在下一个语句执行之前显示(流stdout,默认情况下是行缓冲的)。试试printf("%s\n", t);或printf("%s", t); fflush(stdout); -
@pmg:文本输出流是否需要关闭
'\n'由实现定义。如果是,则行为未定义,即使使用fflush(stdout)。仅打印换行符就更容易、更可靠。 (在许多系统上,不需要换行符,但如果缺少它,输出将与下一个 shell 提示符相邻,这很难看。) -
我会敦促你接受基思的回答,这是一个更好的答案,我已经投了赞成票。
标签: c