int main() {
char Expr[10];
gets(Expr);
return 0;
}
提示输入,什么都不输入然后直接回车,这个Expr数组里会有/0吗
###提示输入,什么都不输入然后直接回车,这个Expr数组里会有/0吗
会
###这个要分情况:
1、根据你的标题,如果你是想问空字符串定义的时候,系统会不会自动填充"0"
答案是不会,即char Expr[10];这句代码并不能保证Expr包含"0",虽然一般情况下很可能是"0",系统随机分配的空间
2、根据你的举例,如果你是想问在gets(Expr);执行后Expr是否会包含"0"?
答案是不一定,如果成功读取到了回车符,则会将回车符替换为"0",这时Expr中包含"0"
但是gets函数并不是一定会成功的函数,如果读入过程中遇到EOF(End-of-File)或发生错误,则返回NULL指针,这时Expr还是定义的时候的内容,其值不一定包含"0"
所以在C语言中,为了防止各种意外情况,最好在定义的时候初始化!!!