char *作为函数的返回类型做什么或意味着什么?

时间:2012-04-03 14:54:52

标签: c function pointers return-type

我有一个为我设置的程序,我只需填写空白。底部有一个函数,我没有必要触摸,但不明白为什么函数的返回类型是char*而不只是char

/*Main Function from where it is called */

char * check(char * name, double sx[], double t[], int n);

/*Function*/

char * check(char * name, double sx[], double t[], int n)
{

int i;
for(i = 0 ; i < n ; i++)
    {    
        if(fabs(sx[i] - t[i]) > EPSILON)
            return (strcat(name, " check fails"));
        else
            return (strcat(name, " check is OK"));
    }
}

我不明白为什么会这样。

3 个答案:

答案 0 :(得分:2)

这是因为该函数不返回单个字符。相反,它返回一个POINTS到一个字符的地址(因此名称为 pointer ),它由*表示。这是必要的,因为你不使用单个字符,而是使用字符列表来形成一个句子(或字符串)。

当字符串以'\ 0'字符结尾时,其他函数可以遍历内存直到它们到达此字符。请阅读本部分的指针:http://computer.howstuffworks.com/c20.htm

或更好:阅读整个C教程。它写得很好,应该澄清很多。

答案 1 :(得分:0)

char *表示指向字符的指针。在C字符串中是由空字符终止的字符数组。

答案 2 :(得分:0)

char *是指向返回“string”(char数组)中第一个char的指针 虽然没有给出数组的大小,但在C“string”中是空终止的。这意味着您可以开始读取指针设置位置的字符,直到遇到空字符('\ 0')。