c-char*作为函数的返回类型的作用或含义



我有一个为我设置的程序,我只需要填空。底部有一个函数,我不必触摸,但不明白为什么函数的返回类型是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"));
    }
}

我不明白为什么。

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

由于字符串以"\0"字符结尾,其他函数可以在内存中迭代,直到到达该字符。请阅读以下指针部分:http://computer.howstuffworks.com/c20.htm

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

char*表示指向字符的指针。在C语言中,字符串是以null字符结尾的字符数组。

char*是返回"string"(char数组)中第一个char的指针
尽管没有给出数组的大小,但在C中,"字符串"以null结尾。这意味着您可以开始读取指针设置位置的字符,直到遇到空字符("\0")。

最新更新