这段代码出了什么问题......它没有返回数据?

时间:2017-10-27 03:36:44

标签: c

char stringConcatenate (char y[], char z[])
{
    unsigned short int a = 0, len;
    len = stringLength(y);
    while (z[a] != '\0')
    {
        y[len + a] = z[a];
        a++;
    }
    printf("%s\n", y);
    return y;
}

return y;未将存储在其中的值返回给函数调用。

1 个答案:

答案 0 :(得分:1)

我强烈建议您先阅读有关指针和数组的基础知识。查看this article

char y[]这样的数组被组织为一组连续的char元素,一个名为y的指针指向数组的第一个元素。由于此指针指向char类型,因此指针本身的类型为char *

因此,当您说return y时,您没有返回数组y的内容 - 您将返回y的值,这是第一个元素的地址y数组。

因此,函数的返回类型应为char *