C語言之路 小白篇

2021-10-04 16:58:08 字數 1396 閱讀 2006

目前我在學習c primer plus (第六版) 中文版。正好有在學的。可以一起交流。

儘管如此,我們還是要提醒讀者:宣告建立了名稱和型別,並為其分配記憶體位置。注意,宣告不是表示式語句。也就是說,如果刪除宣告後面的分號,剩下的部分不是乙個表示式,也沒有值:

int port /* 不是表示式,沒有值 */

疑問點:沒明白這一段話想表達什麼意思呢?

範圍(鏈結1)

loat和double的範圍是由指數的位數來決定的。

float的指數字有8位,而double的指數字有11位,分布如下:

float:1bit(符號位) 8bits(指數字) 23bits(尾數字)

double:1bit(符號位) 11bits(指數字) 52bits(尾數字)

於是,float的指數範圍為-127 ~ > +128,而double的指數範圍為-1023~+1024,並且指數字是按補碼的形式來劃分的。其中負指數決定了浮點數所能表達的絕對值最小的非零數;而正指數決定了浮點數所能表達的絕對值最大的數,也即決定了浮點數的取值範圍。float的範圍為-2^128 > ~ 2^128,也即-3.40e+38 ~ +3.40e+38;double的範圍為-2^1024 ~> +2^1024,也即-1.79e+308 ~ +1.79e+308。

對於型別的分布,可以參考ieee 754標準。

第六章開頭,函式: fabs()

使用fabs()函式(宣告在math.h標頭檔案中) 可以方便地比較浮點數,該函式返回乙個浮點值的絕對值(即,沒有代數符 號的值)。

取絕對值的函式有四個:abs(), fabs(), cabs(), labs();

int abs(int i); //abs的引數為int型,返回值也是int型。i為整型引數。
double fabs(double x); //fabs的引數為double型,返回值也是double型。x為雙精度引數。
double cabs(struct complext znum); //cabs的引數為***,返回值是***。znum為***。
long labs(long n); //long的引數為長整型,返回值也是長整型。
許多經驗豐富的程式設計師在構建比較是否相等的表示式時,都習慣把常量放在左側。

算術 > 關係 > 賦值

算術 > 關係高優先順序組 > 關係低優先順序組 > 賦值

關係高優先順序組: > , >=,

關係低優先順序組: ==, !=

C語言之函式篇

函式 function 是用於完成特定任務的程式 的自包含單元。為什麼要使用函式?第一,函式的使用可以省去重複 的編寫。如果程式中需要多次使用某種特定的功能,那麼只需編寫乙個合適的函式即可。第二,即使某種功能在程式中只使用一次,將其以函式的形式實現也是有必要的,因為這使程式更加模組化,從而有利於程式...

我的C語言之路

include int main void 2016年8月我在 上入手了 c程式語言第二版 不是正版的,連同練習冊共30元,沒買正版這件事我一直愧疚不已 和在深圳書城買了一本正版的 c語言入門123 花了55塊錢 c程式語言第二版 這本書,不用說,被奉為入門經典,書不是很厚,卻很精煉,一如優秀的 一...

我的C語言之路1

已經是大三下學期了。我在自己專業上的道路才邁出第一步。今天才寫了幾個最簡單的順序程式,而且還問題百出。這就很尷尬了。說起來很可笑,我是乙個功利性特別強的人。就是說,一件要做的事情,如果看不到任何好處的話,我是沒有動力去做的。很遺憾的是,大學也開了不少專業課了,我也都應付過去了,比如 c語言程式設計,...