C语言中实参和形参的类型不匹配

#include <stdio.h>
test(char c);
int main(void)
{
    
    
    int g=1;
    printf("%d\n",test(g));
}
test(char c)
{
    
    
    return c+1;
}

有这么一段代码,尽管编译器提示了错误,但是程序仍然能够正常运行
在这里插入图片描述
对于参数类型的不匹配,有一个解释是:函数调用时,将实参的值传递给形参,系统首先会自动隐式地把实参的值的类型转换为形参的类型,然后再赋值给形参。
对于缺少被调函数的类型说明,但程序依然能够正常运行,实际上return在被调函数没有类型说明时默认返回int类型

猜你喜欢

转载自blog.csdn.net/weixin_43888800/article/details/112348853
今日推荐