问一下调用函数时,实参类型可以不和形参类型一样吗

C语言 码拜 5年前 (2016-05-14) 689次浏览
例如

void Swap(int *x,int *y)
{
    int temp;
    temp= *x;
    *x=*y;
    *y=temp;
}

然后本人调用它

void SortString(int score[],long num[],char str[][MAX_LEN],int n)
{
    int i,j;
    char temp[MAX_LEN];
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(strcmp(str[j],str[i])<0)
            {
                Swap(&score[i],&score[j]);
                Swap(&num[i],&num[j]);
            }
        }
    }
}
解决方案

10

假如可以隐式转化,那就是可以,int和long是可以隐式转换的,但int*和long*是不可以的,所以编译器会报错
假如机器上int和long占的内存大小相同(一般是相同的),那可以采用类型转换(int*)来完成

5

指针的话,最好一致
注意
const形参通常可以用非const
反之一般不可以

5

看一下数据类型隐式转化规则你就知道能不能转换了。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明问一下调用函数时,实参类型可以不和形参类型一样吗
喜欢 (0)
[1034331897@qq.com]
分享 (0)