输入的字符串的长度是有限制的还是可以任意长?
在谭浩强的《C语言程序设计》第239页中,有这样的一段话:
……
对于char* a;
scanf("%s",a);
目的是输入一个字符串,但由于这个字符指针a的指向不明,所以这样的做法是不对的。(这句话我懂。)
……
正确的做法是:
char* a,str[10];
a=str;
scanf("%s",a);
先使a有确定值,也就是使a指向一个数组的开头。
……
我想问的问题是:
第一个问题:对于char* a,str[10];
a=str;
scanf("%s",a);
输入的字符串的长度是否不能超过10个字符?或者说,数组str[10]已经规定了输入的字符不能超过数组的存储范围还是可以超过数组的存储范围,比如输入25个字符?
第二个问题:对于char* a,str[10];
a=str;
scanf("%s",a);这个程序段,它是否等同于下述程序段
char* a;
a=NULL;
scanf("%s",a);
如果上述的两个程序段是等同的,那么,输入的字符串的长度应该是不限制的。是这样吗?请各位网友指正。