C學習筆記(10)--- 強制類型轉換,錯誤處理,遞歸

1.強制類型轉換:html

 

強制類型轉換是把變量從一種類型轉換爲另外一種數據類型。例如,若是您想存儲一個 long 類型的值到一個簡單的整型中,您須要把 long 類型強制轉換爲 int 類型。程序員

您可使用強制類型轉換運算符來把值顯式地從一種類型轉換爲另外一種類型:express

 

(type_name) expression;編程

 

 大致上沒啥特別的,整體來講幾個點:編程語言

1.強制類型轉換運算符的優先級大於除法ide

2.類型轉換能夠是隱式的,由編譯器自動執行,也能夠是顯式的,經過使用強制類型轉換運算符來指定。函數

3.在編程時,有須要類型轉換的時候都用上強制類型轉換運算符,是一種良好的編程習慣。spa

4.整數提高是指把小於 int 或 unsigned int 的整數類型轉換爲 int 或 unsigned int 的過程。設計

5.若是一個運算符兩邊的運算數類型不一樣,先要將其轉換爲相同的類型,即較低類型轉換爲較高類型,而後再參加運算. (char to int,int to unsigned,long to double)指針

 

2.錯誤處理:

 

 

C 語言不提供對錯誤處理的直接支持,可是做爲一種系統編程語言,它以返回值的形式容許您訪問底層數據。

在發生錯誤時,大多數的 C 或 UNIX 函數調用返回 1 或 NULL,同時會設置一個錯誤代碼 errno,該錯誤代碼是全局變量,表示在函數調用期間發生了錯誤。您能夠在 errno.h 頭文件中找到各類各樣的錯誤代碼。

因此,C 程序員能夠經過檢查返回值,而後根據返回值決定採起哪一種適當的動做。開發人員應該在程序初始化時,把 errno 設置爲 0,這是一種良好的編程習慣。0 值表示程序中沒有錯誤。

 

C 語言提供瞭如下函數來顯示與 errno 相關的文本消息:

 

perror()  (函數顯示您傳給它的字符串,後跟一個冒號、一個空格和當前 errno 值的文本表示形式。)

strerror()  (函數,返回一個指針,指針指向當前 errno 值的文本表示形式。)

 

exit狀態是一種宏,能夠用於控制程序的結束:

 

exit(EXIT_FAILURE);

exit(EXIT_SUCCESS);

 

顧名思義,成功就是無錯誤,反之。 EXIT_SUCCESS通常被定義爲0,而EXIT_FAILURE通常是-1.

 

3.遞歸(recursion):

 

遞歸指的是在函數的定義中使用函數自身的方法。 

 

遞歸的邏輯就是以一樣的方法,處理一樣的問題,可是每次處理的對象也都逐漸變小。

舉個生活的例子,就好像你扔出了一卷捲紙,你想要恢復原樣只能一圈圈的把卷紙轉回去。

 

如下幾點須要注意:

a.遞歸很是重要,使用遞歸時,程序員須要注意定義一個從函數退出的條件,不然會進入死循環。

 

 

b.遞歸函數在解決許多數學問題上起了相當重要的做用,好比計算一個數的階乘生成斐波那契數列,等等。

 

c.使用遞歸是要付出代價的。與直接的語句(如while循環)相比,遞歸函數會耗費更多的運行時間,而且要佔用大量的棧空間。遞歸函數每次調用自身時,都須要把它的狀態存到棧中,以便在它調用完自身後,程序能夠返回到它原來的狀態。未經精心設計的遞歸函數老是會帶來麻煩。

 

 

 

引用和例子:

https://www.runoob.com/cprogramming/c-type-casting.html

https://www.runoob.com/cprogramming/c-error-handling.html

https://www.runoob.com/cprogramming/c-recursion.html

相關文章
相關標籤/搜索