Chapter03 第二節 const限定符的使用

2022-03-28 00:37:56 字數 1622 閱讀 2210

面試一直會問道const的用法、原理等,索性趁回歸基礎總結一下。

const引用示例**:

const int test1 = 1;

const int test2 = 2;

int test3 = 3;

int test4 = 4;

int &ref = test3;

ref += 1;

cout << test3 << endl;

//1.引用修改非const物件的值

const int &t1 = test1;

cout << t1 << endl;

// 2.t1 = test2; 報錯,const引用無法修改(read only)

const int &t3 = test3;

cout << t3 << endl;

test3 += 1;

cout << t3 << endl;

// t3 += 1; // 錯誤,引用本身無法修改

// 3.可以指向非const變數,非const變數可以修改。

// 4.int &t4 = test2; 報錯,非const引用無法指向const常量

double test5 = 5.0;

// int &t5 = test5; 報錯,無法用 "double" 型別的值初始化 "int &" 型別的引用

const int &t5 = test5;

cout << t5 << endl;

// 5. 非const變數只能繫結到同型別的引用中,const變數可以繫結不同但相關的型別

const指標示例**:

int a = 10;

const int b = 20;

const int *p = &a;

const int *q = &b;

// *p = 11; 報錯,不能通過指標修改。

cout << *p << " - " << *q << endl;

q = p;

a = 30;

cout << *p << " - " << *q << endl;

/* 解釋:

const int *q 指的是指向的位址可以改,指向的值不能改(*p=11非法).

const 修飾的目標是int *q,也就是q所指向的值,所以再給q賦值是非法的。

const int *q可以指向變數或常量,然而不能通過q這個指標去修改指向的值,

但是如果指向的是乙個變數,變數本身是可以重新賦值的,只是不能通過指標去修改。

*/int *const x = &a;

// int *const y = &b; 報錯,不能指向常量

int c = 11;

// x = &c; 報錯,常量位址不能修改

cout << *p << " - " << *q << endl;

/* 解釋:

int * const x 表示x位址是乙個常量,它必須指向乙個固定的位址。但是位址裡面

的值是可以改變的,所以int * const x不能指向乙個常量。它只是限制你的位址不能

改變而已。

*/

Chapter03 第三節 浮點數

常規表示 12.34 0.01 8.0 e表示 2.5e 8 2.5 10 8 7e6 7.0 10 6 e大小寫隨意 e x或者e x表示小數點前移或後移x個位置,所以叫做浮點數 有效位 從右往左數第乙個不為0的數起到最左邊 description 浮點數精度問題 author andew dat...

彙編 第二節

第二節 cpu主要有有運算器,控制器,暫存器,三部分組成 8086 cpu有14個暫存器,如ax,bx,cx,dx,si。8086所有暫存器都是16位的,可以存放2個byte即位元組,16位二進位制數 所能存放的最大數值是 11111111111 2 16 1 從0開始,所以 1嘛 通用暫存器為4個...

函式第二節

coding utf 8 1.定義乙個方法get num num num引數是列表型別,判斷列表裡面的元素為數字型別。其他型別則報錯,並且返回乙個偶數列表 注 列表裡面的元素為偶數 def get num l l for i in l 判斷列表l的元素是否都為整形 if not isinstance...