2012-04-03 437 views
1

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

/*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

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

2

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

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

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

0

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

相关问题