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