我有一个为我设置的程序,我只需填写空白。底部有一个函数,我没有必要触摸,但不明白为什么函数的返回类型是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 :(得分:2)
这是因为该函数不返回单个字符。相反,它返回一个POINTS到一个字符的地址(因此名称为 pointer ),它由*
表示。这是必要的,因为你不使用单个字符,而是使用字符列表来形成一个句子(或字符串)。
当字符串以'\ 0'字符结尾时,其他函数可以遍历内存直到它们到达此字符。请阅读本部分的指针:http://computer.howstuffworks.com/c20.htm
或更好:阅读整个C教程。它写得很好,应该澄清很多。
答案 1 :(得分:0)
char *表示指向字符的指针。在C字符串中是由空字符终止的字符数组。
答案 2 :(得分:0)
char *是指向返回“string”(char数组)中第一个char的指针 虽然没有给出数组的大小,但在C“string”中是空终止的。这意味着您可以开始读取指针设置位置的字符,直到遇到空字符('\ 0')。