回覆列表
  • 1 # chenx寶貝

    您好,說的這問題總結一下有幾點可以說:首先就拿你說的strcat來說吧,它的返回值型別你可能沒用過,不過型別是char*你可能也能夠猜到它是連線後的字串了。而且它確實如此。strcat(s,t);透過這個呼叫以後,t串將連到s串後邊,那麼s串就是我們連線好的串,同時它的返回值也是連線好的串,也就是返回值也是s,這就使得一個問題得以方便,比如我要連線這個串後並輸出,那麼你可能寫的程式碼是這樣:strcat(s,t);printf("%s\n",s);但此處我也可以這麼寫:printf("%s",strcat(s,t));我高興的話還可以這麼寫:printf(strcat(s,t));以上三個結果都是一樣的。那你看,很顯然後兩種更簡潔一些。這也就總結出第一條,在處理程式中使得某些問題簡化。通常這種在引數為指標時常見再來看一個scanf它的返回值,它的返回值你也應該從來沒有用過吧?它的意義是返回正確讀入變數的個數,比如scanf("%d",&i);如果正確讀入一個整數的話它就返回1,否則返回0那麼透過這個1和0我們就可以判斷它是否正確讀入的變數,並且讀了幾個。在ACM中我們常見的寫法是while(scanf("%d",&n)!=EOF)來實現資料的迴圈讀入那麼這第二條便是透過返回值來判斷成敗。再比如說fopen這個是開啟檔案的函式,它的返回值我們常用,這裡只是提一點,它其實會返回開啟的檔案指標,但有一種情況就是檔案沒有開啟,或是開啟失敗,這時初學者常忽略一個問題就是如果失敗了咋辦,如果不特別處理你還使用著那個失敗的檔案指標必然得不到想要的結果,甚至出現問題。所以別忘了某些函式在失敗的時候的返回值,這和你問題似乎有些連繫。總結大至是以上三點吧,一個函式返回值並不是沒有用的,庫函式即然設定了一般都會有它的用意。

  • 中秋節和大豐收的關聯?
  • 剛蒸熟的米飯適合做蛋炒飯嗎?