c语言函数返回值类型由什么决定?

 

C语言函数返回值的类型是由定义函数时所指定的函数类型决定的。函数值的类型应当是在定义函数时指定的。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型―致,如果不―致,书上常说,则以函数类型为准,即函数类型决定返回值的类型。但是实际上,若两个类型之间能发生隐式转换(如int与char, float, double),则编译通过,有警告;若两种类型之间不能转换,则无法通过,报错。

示例:

int fun(int a)

{
    float a=1.5;

    return a;//warning C4244: 'return' : conversion from 'float ' to 'int ', possible loss of data

}

这时实际返回的是1而不是1.5

-----------------------------------------------

char func(char *p){

return p;

}

这段程序中,p是个指针变量,它的值是一个地址(整型的),返回类型是char型,因此会产生警告,然后返回一个地址,但是由于char型的值(0~127),而地址的值一般都要大,所以输出来的话应该是个乱码。

posted @ 2022-06-15 15:42  iZJ"Qq4577105  阅读(1694)  评论(0编辑  收藏  举报