C 的那些小常識

2021-07-22 18:49:25 字數 2391 閱讀 2064

學習了一段時間的c++,慢慢發現整理出來了一些零零散散的小常識。

`std::cin >> x1 >> x2 >> x3;` 輸入三個以空格鍵分隔開的數值分別賦給 x1, x2, x3, 並按回車鍵結束。
int i(1), j(1); <=>  int i(1), j(1);

i += 8; <=> i = i + 8;

c++內部用1表示true, 哦表示false。在控制台顯示乙個布林變數,若其值,若其值為true,則列印1;若其值為false,則列印0。

在c++中將乙個數值複製給bool型變數,任意非零值會得到true,只有0會得到false。

德·摩根定律:

!(condition1 && condition2) <=> !

condition1 || !

condition2

!(condition1 || condition2) <=> !

condition1 && !

condition2

對於(x

為了向乙個檔案寫入資料,首先需建立乙個 ofstram 型別的物件:ofstream output;

為了指定要寫入的檔案,需呼叫output 物件的 open 函式:

output.open(」***.txt」); 會建立乙個名為 ***.txt 的檔案。若檔案已經存在,其內容會被銷毀,並建立乙個新的檔案。

為了從乙個檔案讀取資料,首先要宣告乙個ifstream 型別的變數; ifstream input。

指定要讀取的檔案:input.open(」***.txt」);

檢測文尾:input.eof();

按值方式傳遞引數:當呼叫乙個帶引數的函式時,實參的值被傳遞給形參。無論函式中形參的值如何改變,實參變數的值都不會受影響。

按引用方式傳遞引數:乙個標量實際上是另乙個變數的乙個別名,任何對引用變數的改變實際上都會作用到原變數上;

引用方式:將函式的形參宣告為引用變數形式,呼叫時傳遞乙個常規變數。當改變變數(形參)的值時,原變數的值也會改變。

使用按引用方式時:形參和實參的型別必須是相同的。

函式過載:即在同乙個程式檔案內存在兩個或兩個以上的有相同名字的函式,但引數列表不同。c++編譯器會根據函式簽名來決定使用哪個函式。

一般地:a + rand()%b 返回乙個 a ~ a + b 之間的值(不包含a+b)

給定任意兩個字元 ch1 和 ch2 (ch1 < ch2), 生成兩者之間的乙個隨機字元:static_cast(ch1 + rand()%(ch2 - ch1 +1));

當乙個函式結束執行後,其所有區域性變數都會被銷毀。

在程式的整個生命週期中,靜態區域性變數會一直駐留在記憶體中。靜態區域性變數的宣告使用關鍵字:static.

內聯函式:避免函式呼叫的開銷。內聯函式是不會被呼叫的,實際上,編譯器會將其**複製到每個呼叫點上。關鍵字:inline。

傳遞乙個陣列意味著陣列的起始位址被傳遞給形參。函式內形參引用的就是傳遞給函式的那個陣列。編譯器並未建立新的陣列。(引用方式)

為了防止函式意外地改變了陣列的值,可以在陣列引數前加上關鍵字const,告知編譯器陣列是不允許修改的。

簡接引用:通過指標引用某個值。

c++允許對指標加/減乙個數,效果是指標包含的位址值被增加/減少,變化得量是該整數乘以指標指向的元素的大小。

乙個陣列實際上就是乙個指標,而指向乙個陣列的指標可以像陣列一樣使用,甚至可以對指標使用下標變數。

將乙個陣列的位址賦予乙個指標是不需要使用位址運算子(&)的,因為陣列名就是表示陣列的起始位址。

int *plist = &list[0]; <=> int *list = list;
即陣列可以當做指標使用,指標可以當做陣列使用。

使用const 宣告的常量指標,其宣告初始化必須在同一條語句中,在後面的程式中不能為其賦予新的位址。但指標指向的資料不是常量,是可以改變的。

double * const plist = &r;

const

double *const p = &d;//指標和指向的資料都是常量

const

double *p = &d; //指標不是常量,但其指向的資料是常量

double *const p = &d;//指標是常量,但其指向的資料不是常量

//指向常量的常量指標

const t *const cpct1 = pt;

t const *const cpct2 = cpct1;

值得注意的是,使用乙個引用通常比使用乙個常量指標更簡單

const t &rct = *pt;

t &rt = *pt;

硬體的一些小常識

處理高頻訊號的地線時多用via可以降低引線電感 一般情況下,高頻電路應就近多點接地,低頻電路應一點接地。在低頻電路中,佈線和元件間的電感並不是什麼大問題,然而接地形成的環路的干擾影響很大,因此,常以一點作為接地點 但一點接地不適用於 高頻,因為 高頻時,地線上具有電感因而增加了地線阻抗,同時各地線之...

html5的一些小常識

1.html中不支援空格,製表符,回車。他們都會被解析成乙個空白字元。2.utf8與utf 8 的區別 utf 8是標準寫法,一般在資料庫中只能使用utf8 3.html與htm的區別 html是 hypertext markup language 超文字標記語言 htm是 hypertext ma...

C 繼承等 小常識

1.什麼是繼承?舉例說明 繼承就是子類繼承父類裡面的屬性和方法 父類 public class person 子類 public class student person 2.什麼是多型?舉例說明 多型指一種事物多種形態 虛方法實現多型virtual,override class stu class...