C 基礎知識及相關處理

2021-10-02 18:59:54 字數 1559 閱讀 6974

ps:各oj平台的題目中對輸入資料的處理一直是個大難題,幸好 leetcode 只需要編寫解決問題的類就可以了,我才不是因為這個原因才選擇 leetcode 的,一定不是!

#include

using

namespace std;

intmain()

cout <<

"sum is: "

<< sum << endl;

return0;

}

此處迴圈語句為:

while

(cin >> value)

迴圈條件為表示式: cin >> value

(1)從標準輸入讀取下乙個數,將其儲存在value中;

(2)輸入運算子 >> 返回其左側運算物件,在本例中為 cin;

因此,此迴圈條件實際上檢測的是 cin。

當使用乙個 istream 物件作為判斷條件時,其效果是檢測流的狀態:

(1)如果流是有效的,即流未遇到錯誤,那麼檢測成功;

(2)當遇到檔案結束符(end-of-file),或者遇到乙個無效輸入時,istream物件的狀態就會變為無效,此時條件為假。

在本例中,可以有以下幾種情況結束while迴圈:

1-檔案結束符:

windows系統:ctrl + z

unix系統中,包括mac os-x:ctrl + d

例如:

2-無效輸入:

例如:讀入的值不是乙個整數

一些經驗準則:

帶符號型別可以表示正數、負數或0;

無符號型別則僅能表示大於等於0的值。

切勿混用帶符號型別和無符號型別!

如果表示式裡既有帶符號型別,又有無符號型別,帶符號型別會自動轉換為無符號型別,此時如果帶符號型別取值為負時,就會出現異常,因為我們試圖講乙個負數賦值給無符號型別。

unsigned u =10;

int i =-42

; cout << i + i << endl;

//輸出結果為:-84

cout << u + i << endl;

//輸出結果為:4294967264

由於 int 型別是帶符號的,int i = -42 使用二進位制表示為:

原碼:10000000 00000000 00000000 00101010

反碼:11111111 11111111 11111111 11010101

補碼:11111111 11111111 11111111 11010110

而當其在表示式中轉換為無符號型別時,為:4294967264

C 相關基礎知識

1 記憶體空間分配 2 c 字元陣列 0 問題 從c繼承而來c風格字串 c style character string 它不是一種型別,而是為了表達和使用字串而形成的一種約定俗成的寫法。按此習慣書寫的字串存放再字元陣列中並以空字元結束 null terminated 以空字元結束的意思是再字串最後...

C 相關基礎知識(轉貼)

一 以下為windows nt下的32位c 程式,請計算sizeof的值 char str hello char p str int n 10 請計算 sizeof str 6 sizeof p 4 sizeof n 4 void func char str 100 void p malloc 10...

C 入門相關基礎知識

一 c 的定義 c 是c語言的繼承,它既可以進行c語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型性為特點的的物件導向的程式設計。c語言所支援的語法在c 中同樣也支援。二 為什麼c 支援過載,而c語言不支援?函式過載的定義 在同一作用域類,一組函式的函...