2012-04-03 439 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')。

相關問題