異常,const限定符

2021-10-10 12:46:16 字數 1607 閱讀 8502

異常:

1.掌握語句:

throw:用於丟擲異常資訊,交出**控制權,一旦丟擲資訊,被catch子句捕獲到異常資訊,**的控制權就轉移到對應的子句上了。丟擲多種資料型別。catch捕獲

try:這個語句上執行可能出現異常的**塊,如果有異常,可以搭配throw語句。

catch:捕獲異常,搭配try語句使用。

#include using namespace std;

int fun()

cout << "輸出的結果是:" <<(a/b)<< endl;

} catch (int e)

else

fun(); }}

int main(int argc,char *ar**)

以上**,可以幫助理解,搭配了使用,有種遞迴的感覺。

const:初始化問題,因為定義位為常量,所以其值就不能再變化了,所以在一開始的時候就要初始化,給乙個值給它。

基本概念:

常量引用:

const int &aa = b;//這樣是對引用物件是不可以改變的,是乙個常量。
主要看const 在*的左邊還是右邊,左定值(資料值)右定向(指標)。

頂層const:搭配const指標使用。意思是指標常量,即繫結的物件不再改變。物件的內容不是常量

int *const pi=&a;//按從右到左的順序可以看到,這是乙個指標常量
const int *a=&u;
像上面這種情況就是一種底層const,區別這兩種const的區別是,看*a能不能更改,還是=號右邊的值能不能更改,如果是左邊不能更改,就是一種頂層const,如果是右邊的值不能更改就是一種底層const.

const int &a=b;//這是定義別乙個引用,這個時候,=右邊的值是不能更改的,所以這底層const
常量指標:把*放在const之前,說明指標是乙個常量(頂層const)

整形常量:const int a=9; (底層const,a為常量)

常量表示式constexpr:指值不會改變,且在編譯過程中就能得到計算結果的表示式。

constexpr int mf =20;//20是乙個常量表示式

constexpr int limit = mf+1;//mf+1也是乙個表示式

constexpr int sz = size()//這個不是乙個正確的語句,size()值還沒確定,除非size()是乙個constexpr 函式

constexpr 如果在宣告中定義了乙個指標,限定符constexpr僅對指標有效,對指標所指物件無效。這需要注意與上面說的情況不一致。

constexpr int *a=null;//這個*a是乙個常量。是乙個頂層const

關於const 限定符

很多引用自c primer一書 比如有時候需要將乙個文字中的資料複製到另外乙個文字。我們需要使用緩衝區,緩衝區的大寫我們可以自己來決定比如1024個位元組,這是乙個常量,我們使用bufsize 1024.但是bufersize物件本身是乙個變數。所以我們可以引入const限定符,它將乙個物件轉化為常...

const 型別限定符

1.以const關鍵字宣告的物件,其值不能通過賦值或遞增 遞減來修改。例 const int a 限定a的值不能被修改 a 12 不允許 2.在指標中使用const const float pf pf指向乙個float型別的const,建立了pf指向的值不能更改 float const pt pt是...

指標和const限定符

const int p 1,表示p指向乙個整型變數,並且該變數為const的。2,可以更改p的值,不可以更改它所指向物件的值。3,它可以指向非const型別的int變數 int const p 1,表示p指向乙個整型變數,該變數為非const的 2,不可以更改p的值,一旦初始化不可更改,單可以更改它...