《C Primer》學習筆記

2021-06-18 13:27:31 字數 2368 閱讀 7576

2023年7月18日 颱風海鷗登陸

1、宣告與定義

變數的定義用於為變數分配儲存空間,還可以為變數指定初始值。在乙個程式中,變數有且僅有乙個定義。

變數的宣告用於向程式表明變數的型別和名字。變數的宣告包括物件名、物件型別和物件型別前的關鍵字extern:

當設計標頭檔案時,記住定義和宣告的區別是很重要的。定義只可以出現一次,而宣告則可以出現多次

***因為標頭檔案包含在多個原始檔中,所以不應該含有變數或函式的定義。

const 變數預設時是定義該變數的檔案的區域性變數。所以把它們的定義放在標頭檔案中是合法的。

2、include

#include 指示只接受乙個引數:頭檔名。預處理器用指定的標頭檔案的內容替代每個 #include。我們自己的標頭檔案儲存在檔案中。系統的標頭檔案可能用特定於編譯器的更高效的格式儲存。無論標頭檔案以何種格式儲存,一般都含有支援分別編譯所需的類定義及變數和函式的宣告。

c++ 預處理器繼承於 c 語言。但c++ 程式以高度受限的方式使用預處理器。

3、預處理器變數

設計標頭檔案時,應使其可以多次包含在同一原始檔中,這一點很重要。我們必須保證多次包含同一標頭檔案不會引起該標頭檔案定義的類和物件被多次定義。

標頭檔案保護符用於避免在已經見到標頭檔案的情況下重新處理該標頭檔案的內容。

標頭檔案保護符是指為防止標頭檔案被同一原始檔多次包含而定義的預處理器變數。

預處理器變數有兩種狀態:已定義或未定義。(為了避免名字衝突,預處理器變數經常用全大寫字母表示。)定義預處理器變數和檢測其狀態所用的預處理器指示不同。#define 指示接受乙個名字並定義該名字為預處理器變數。#ifndef 指示檢測指定的預處理器變數是否未定義。如果預處理器變數未定義,那麼跟在其後的所有指示(如處理標頭檔案)都被處理,直到出現 #endif。

#ifndef test_h

#define test_h

// 其他處理**,如處理標頭檔案

#endif

4、命名空間的 

using

宣告使用 

using

宣告可以在不需要加字首 

namespace_name::

的情況下訪問命名空間中的名字。using

宣告的形式如下: using namespace::name;

如:#include

#include

using std::string;

using std::cin;

int main()

string s;//相當於std::string

cin >> s;//相當於std::cin

5、標準庫 

string

型別string的size() 成員函式似乎應該返回整形數值,或無符號整數。但事實上,size 操作返回的是sring::size_type 型別的值。如:

string str("some string");

for (string::size_type ix = 0; ix != str.size(); ++ix)

cout << str[ix] << endl;

當進行 

string

物件和字串字面值混合連線操作時,+

操作符的左右運算元必須至少有乙個是 

string

型別的,如:

string s1 = "hello"; 

// no punctuation

string s2 = "world";

string s3 = s1 + ", "; 

// ok: adding a string and a literal

string s4 = "hello" + ", "; 

// error: no string operand

string s5 = s1 + ", " + "world"; // ok: each + has string operand

string s6 = "hello" + ", " + s2; // error: can't add string literals

6、標準庫 

vector型別

vector 不是一種資料型別,而只是乙個類模板,可用來定義任意多種資料型別。vector 型別的每一種都指定了其儲存元素的型別。因此,vector 和 vector 都是資料型別。

7、關於引用型別

引用型別實際上就是乙個變數的別名,指向同乙個記憶體位址

東子文

待續

C Primer學習筆記

學習完乙個知識點後寫上自己的理解。算是總結吧,加深一下自己的印象,也可以在以後複習的時候方便檢視 加油加油!14.1關於運算子的過載 存在的意義 目前看來就是因為操作符大部分是針對資料的,比如int型,char型,書中稱為內建型別。而當類之間想要用操作符的時候,比如兩個類的物件相加,那麼就需要去重 ...

c primer學習筆記

3.2 標準庫型別string 1.注意在使用empty size 和is x 這種函式時請注意其使用的方法,例如 string s hello world if s.empty empty 和size 更像是一種屬性 if is x s 0 is 這種函式更像是一種函式,而且是針對的單個字元 2....

c primer學習筆記

第一章 1.hello world include stdafx.h include include int main std cout std cout sum return 0 include include int main 輸出10到0的自然數 while t 0 std cin t ret...