C 筆記(持續更新)

2021-10-08 08:23:12 字數 2128 閱讀 2745

3、復合型別

三、字串、向量和陣列

c++使用iostream庫提供的io機制:輸入流、輸出流。

乙個流就是乙個字串行,從io裝置讀出或寫入io裝置。

流:隨著時間的推移,字元是順序生成或消耗的。

向流寫入資料:

輸出運算子 <<

<< 接受兩個物件,左側必須是乙個ostream物件,右側是要列印的值。運算子將給定的值寫到給定的outstream物件中,輸出運算子的計算結果就是其左側運算物件,即ostream物件。

std::cout << 「hello world!」 << endl;

第乙個 << 列印右側雙引號中的字串字面值常量,第二個 << 列印 endl ,endl是特殊值,結束當前行。

從流讀取資料:

>> 接受兩個物件,左側是istream物件,右側是乙個給定的物件。從istream讀入資料,存入給定的物件。返回其左側運算物件作為結果。

std::cin >> value;

從std::cin讀入資料,並存入value。返回std::cin。

連續輸入例子

當我們賦給無符號型別乙個超出它表示範圍的值時,結果是初始值對無符號型別表示數值總數取模後的餘數。理解取模和求餘運算

例如,8位元大小的unsigned char 可以表示0-255區間內的值,如果我們賦乙個區間以外的值,實際的結果是該值對256取模後所得的餘數。

因此,將-1賦給8位元大小的unsigned char所得的結果是255。

計算機記憶體可定址的最小記憶體塊稱為位元組(byte)

初始化不是賦值,是兩個完全不同的操作。

初始化:建立變數時賦予其乙個初始值。

賦值:擦除物件當前值,以新值替代。

c++11的標準,初始化變數可以使用花括號。

例如,int a = ;或者int a ;

還可以int a(0);

前提:內建型別的變數未被顯示初始化

定義於函式體之外的變數被初始化為 0

定義在函式體內部的內建型別變數將不被初始化

類可以自己決定是否不經初始化就定義物件,它將決定物件的初始值到底是什麼

宣告:使名字為程式所知

定義:建立與名字關聯的實體

在變數前新增關鍵字extern,表示只宣告它而不定義它。但如果給新增extern的變數賦初值,那麼就抵消了extern的作用,就變成定義了。

例如,extern int i; //宣告i 而非定義 i

int j; //宣告並定義 j

extern double pi = 3.1415; //定義

變數能且只能被定義一次,但可以被宣告多次

c++識別符號對大小寫字母敏感

使用者自定義的識別符號中不能連續出現兩個下劃線,也不能以下劃線緊連大寫字母開頭。定義在函式體外的識別符號不能以下劃線開頭。

巢狀的作用域分為內層和外層(c++ primer 44 頁)

如果定義了與全域性變數同名的區域性變數,在區域性變數的作用域內會優先使用區域性變數,此時想要使用全域性變數就要使用域操作符來覆蓋預設的作用域規則。

所以,如果函式有可能使用到某全域性變數,就不宜在定義乙個同名的區域性變數

c++新增了一種引用,所謂的「右值引用」。主要用於內建類。我們使用術語一般說的是「左值引用」。

初始化變數是初始值拷貝到新建的物件中

定義引用是將引用和它的初始值繫結在一起,不是將初始值拷貝給引用

引用就是別名,只是為乙個已經存在的物件起的另外乙個名字

引用將和它的初始值物件繫結在一起,因為無法令引用重新繫結到另外乙個物件,因此引用必須初始化

引用型別的初始值必須是乙個物件,且物件的型別與引用型別一致

陣列和 vector 初始化

c++基礎之vector、陣列初始化

a的起始元素開始到第四個元素之前的元素都給了v4

C 小筆記(持續更新)

1 string轉為char string str 123 char c const cast str.c str string轉為const char 再轉為char 使用strcpy時出現異常.沒搞懂,之前這樣用好像可以 string str cin str char p null strcpy...

c 學習筆記(持續更新)

1.關於指標和引用的區別 指標指向記憶體中的某個物件,而引用繫結到記憶體中的某個物件,他們都實現了對其他物件的間接訪問,二者主要區別有兩個方面 首先,指標本身就是乙個物件,允許對指標賦值和拷貝,而在指標的生命週期內它可以指向幾個不同的物件 引用不是乙個物件,無法令引用重新繫結到另外乙個物件中 其次,...

C學習筆記(持續更新)

預處理指令 include 包含 h head 標頭檔案 stdio standard 標準 i input 輸入 o out輸出 這個檔案可能會包含乙個標準輸入輸出的標頭檔案 include intmain void c語言是面向過程的語言,執行步驟為 從原始檔進入,找到main函式,從上到下,依...