C 零碎知識點集合

2021-08-17 02:20:39 字數 2222 閱讀 8279

比較簡單的我就直接寫在這篇裡了,比較複雜的會單獨寫一篇部落格。

c舊風格

.h結尾,如math.h,由於c++相容c,所以c/c++均可使用。

c++舊風格

.h結尾,如iostream.h,此時無名字空間等特性。

c新風格

字首加上c,無.h的副檔名,如math.h改為了cmath,增加了新特性,可以使用不是c的特性,如namespace std

c++新風格

iostream,增加了使用名字空間(namespace std)的特性。

namespace 即「命名空間」,也稱「命名空間」 、」名字空間」。c++ 使用命名空間的原因主要是,人類可用的單詞數太少,並且不同的人寫的程式不可能所有的變數都沒有重名現象,為了解決變數重名,於是引入命名空間來區分,將變數限制在不同的域內。

詳細介紹:

c++ 引入函式預設引數,即預設引數,極大地提高了使用函式的靈活性,

我們來舉乙個簡單的例子:

#include 

using

namespace

std;

int test(int x = 3, int y = 5)

int main(int argc, const

char * argv)

輸出結果:

傳兩個引數:3

傳乙個引數:6

不傳引數:8

很容易看出,當我們傳兩個引數時,形參 x 變成了 a 的值(1),形參 y 變成了 b 的值(2),所以輸出結果為 3 ;當我們傳乙個引數時,形參 x 變成了 a 的值(1),形參 y 是我們指定了的 5 ,所以輸出結果為 6 ;當我們不傳引數時,形參 x 使我們指定的值 3 ,形參 y 是我們指定了的 5 ,所以輸出結果為 8 。

這就是所謂的預設引數,就是在宣告函式的某個引數時,給他指定乙個預設值,當你傳引數了,這個引數會是你傳的值;當你未傳參,這個引數就是指定的值。

預設引數分為兩類:

全預設引數

半預設引數

全預設引數就是我們上面所舉的例子:

int test(int x = 3, int y = 5);
也就是說,我們給所有的引數都指定了值,而使用者可以選擇 傳所有引數、或部分引數、或完全不傳參。

注意:若您選擇傳部分引數,您只能從最後乙個引數開始進行省略;也就是說,您要省略乙個引數,那麼必須省略它後面所有的引數。正如上面的例子,您若要選擇省略傳參 a ,那麼 b 也無法傳入,否則,您單傳乙個引數,那麼這個引數必定是 a 的形參。

說完全預設引數,那麼半預設引數呢?

int test(int x, int y, int z = 1);
像上面這種寫法,便是半預設引數,即我們只指定了部分引數的值。但是這種指定方式也是有講究的,指定的必須是右邊的引數。其實想想也很簡單了,我們省略引數是從右邊開始省略,那麼必定是右邊的先開始指定。

在使用的時候,我們也可以採取將預設引數寫在宣告中,而函式定義與沒有預設引數時一樣,如下:

當我們要經常使用某個值,而其他值只是偶爾使用,這樣,我們將經常使用的值作為預設的引數,將會有很大幫助。

但這並非是程式設計上的重大突破,只是會帶來很多便利。通過使用預設引數,可以減少要定義的析構函式、方法以及方法過載的數量。

持續更新…

零碎知識點

1.反斜槓也可拼接字串 window.nl ad function window.nl ad function 2.在console.log 中新增樣式 var a hello console.log c a,font size 400 background blue color white 3 通...

零碎知識點

比較數值時,不要integer,要int 1,elasticsearch查詢時不識別大寫,應全部轉為小寫.因此建立索引時盡量使用小寫 2.var param param.yanan1 yanan2 此處的用法 param 宣告了json格式的param,param.yanan1 yanan2定義了j...

C 零碎知識點總結

c 物件導向的三大特徵 1.封裝性 將客觀事物抽象成類,每個類對自身的資料和方法實行 protection private,protected,public 2.繼承性 廣義的繼承有三種實現形式 實現繼承 使用基類的屬性和方法而無需額外編碼的能力 可視繼承 子窗體使用父窗體的外觀和實現 介面繼承 僅...