C 使用變數時應注意其取值範圍

2021-08-21 08:09:26 字數 920 閱讀 1446

眾所周知,變數是有取值範圍的。像int、double、float、char等等,都有其相應的取值範圍。平時在使用int型變數的時候,往往由於其用於小型的for迴圈,沒有超出取值範圍,因此忽視它的取值範圍。但是,了解其取值範圍是至關重要的。

比如下面這段**。輸入乙個int型變數並輸出它。假如輸入的數在int取值範圍內,執行是沒有問題的,但假如輸入的數超出了int型變數的取值範圍,那麼就會導致程式崩潰。當然,由於這段**用於舉例子,所以簡單異常,容易注意int的取值範圍,但是假如**需求是將輸入的int型變數的每一位做+1處理然後輸出,或者是求輸入的int型變數的各位之和,或許就會忽略了int型變數的取值範圍導致崩潰。

#includeusing namespace std;

int main()

然而,int型變數的取值範圍並沒有想象中那麼大,當輸入乙個十位的十進位制數時,系統就瀕臨崩潰了;那麼,如果要實現「將輸入的數字每一位相加」功能,又要保證使用者輸入的數沒有超過int型變數的取值範圍,或者是超過了取值範圍也沒事,該怎麼做呢?我們可以用char、string等字串來代替數字。因為當輸入為字串時,取值範圍的關鍵就不再是這個數有多大了,而是這個數的位數有沒有超過字串位數的取值範圍,這樣,可輸入的數值就比int型變數大得多了。

然後當要使用此數的某一位時,將那一位的字元取出,然後用其減去字元『0』即可得到該值。

我們都知道,在ascii碼表中,『0』-『9』是有其對應的ascii值的。

所以,當我們要將單位的int i 轉化成char c 時,只需讓c =『0』+ i 即可,因為其表示c為『0』的ascii碼值+i,正好對應了 i 轉換為字元時的ascii碼值。

而數值 i 的字元 c 要從字元 轉化成int時,則是讓i = c -『0』,其意義為數值 i 的字元 c 對應的ascii值與『0』的ascii碼值相差的數值正好是 i 的值。

在建構函式中使用new時應注意的事項

1,如果在建構函式中使用new來初始化物件的指標成員時,應在析構函式中使用delete 2 new和delete要相容。new對應與delete new對應與delete 3,如果有多個建構函式,則必須以相同的方式使用new 要麼都帶括號,要麼都不帶,因為只有乙個析構函式,因此所有的構造方法要相容。...

在建構函式中使用new時應注意的事項

在c 中使用new來初始化物件的指標成員時必須注意如下事項 1.如果在建構函式中使用new來初始化指標成員,則應在析構函式中使用delete來釋放。2.new和delete必須相互相容,new對應與delete new 對應於delete 3.如果存在多個建構函式,則必須以相同的方式使用new,要麼...

使用低壓差穩壓器時應注意的12事項

ldo的選用原則 http www.sinochip.net techsheet 55.htm 使用低壓差穩壓器時應注意的 12事項 使用低壓差線性穩壓器時不得超過晶元的最高輸入電壓 uim 最大功耗 pdm 最高結溫 tjm 等極限引數值。最大功耗 pdm uim uo iom。一般講,晶元的封裝...