这个char类型形参表中为什么用int

来源:百度知道 编辑:UC知道 时间:2024/09/27 17:37:40
int fun(char s[],int c)
{int i,k=0;
for(i=0;s[i];i++)
if(s[i]!=c)
s[k++]=s[i];
s[k]='\0';
}
main()
{static char str[]="turbo c and borland c++";
char ch;
clrscr();
printf(":%s\n",str);
printf(":");
scanf("%c",&ch);
fun(str,ch);
printf("str[]=%s\n",str);
}
上面这个函数作用是删除指定字符,
ch在主函数中是char类型,到了形参表却成了int,
但是编译的时候没有错误,功能也完全正常怎么回事。

会自动转换的。char型的取值范围能被int型完全覆盖,所以这种转换没有任何问题。

它是将字符以ASCII形式表示吗,比如char ch = 'a'= 97
它们之间是等价的,所以可以直接互换了