问题一:
为什么ch被声明为整形,而我们事实上需要它来读取字符?
int ch;
while((ch=getchar())!=EOF && ch!='\n')
;
答案是:
EOF是一个整型值,它的位数比字符类型要多,把ch声明为整形可以防止从输入读取的字符
意外地被解释为EOF。但同时,这也意味着接收字符的ch必须足够大,足以容纳EOF ,这就是
ch使用使用整型值的原因。
问题二:
为什么下面函数中有的参数前要加上 const
void rearrange(char *output,char const *input,int n_columns,int const columns[])
答案:
因为数组参数是传递的一个指针,而不是一个数组的拷贝,也就是说
函数修改了形参数组的参数,它实际上将修改实参数组的对应元素。
加上 const 之后则表示参数不能被修改