C 的const操作符

2021-06-20 08:58:12 字數 1254 閱讀 2741

1.c語言中定義乙個符號常量可以用巨集定義實現

如# define min 5

巨集定義的缺陷是僅僅對常量做簡單的替換,有時會出現預料之外的結果,如# define min(x)  x*x  將x設為(2+3)會得到13,而不是25

c++中可以用const修飾符來定義常量,const比巨集定義常量更加安全。

下面的例子展示了巨集定義和const的不同,

int x=5;

# define t x+x

# define m t-t

m的值將為10

而用const定義常量const int t=x+x;const m=t-t; 

m的值將為0。

2.const 修飾符與指標

(1)指向常量的指標

const 《型別名》 *指標名;如:const int *t=&x;這種指標可以修改自己的指向,但它指向的內容*t不能修改。

(2)常指標

《型別名》 *const 《指標名》

int t=4;int *const p=&t;這種指標不能改變指向,但可以改變指向的內容

(3)指向常量的常指標

const 《型別名》 *const 《指標名》

int x=5;const int *const=&x;

這種指標不能改變指向,也不能改變指向的內容

下面是**:

# include using namespace std;

int main()

void show(){cout<<"not const"《常成員函式show()只能訪問而不能修改類中的變數(mutable變數除外)。

上面還講到了常物件const a a,常物件只能呼叫常成員函式。

(2)以下兩個函式不能實現過載:

f(char*)和f(const char *),因為如果把char *型別的變數傳入形參時,會有二義性的問題。

5.const用於函式的形參

int f(const int x) ;這個函式傳入的實參可以是const型別,也可以是非const型別,在函式f中,x的值不能被改變

int f(const int * x) ;形參為指向常量的指標,指向的內容不能改變

int f(int *const x);形參為常指標,指向不可變

int (const a& a);形參為a型別的引用,這樣可以避免複製、修改物件,從而有提高效率並且保護物件的作用。

6.const也可以用於修飾函式的返回值,此時函式的返回值可以相應地賦值給乙個const型別的變數。

c語言操作符 位操作符 移位操作符

1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...

c的操作符

最近自己看了一些c的操作符,便按照自己的想法總結如下 3.位操作符 4.賦值操作符 5.單目操作符 6.關係操作符 7.邏輯操作符 8.條件操作符 9.逗號表示式 10.下標引用,函式呼叫和結構成員 加 減 乘 除 取模 1 操作符只能對兩個整數進行操作,返回值是整除後的餘數 2 除 操作符外,其餘...

MySQL的and操作符和or操作符

有時對where的要篩選的列不止乙個時,那麼就用到了and操作符和or操作符,and操作符顧名思義的意思是 並且 而or操作符的意思是 或者 比如以部門員工表為例 查詢部門編號為d001並且入職日期為 1985 02 02的員工編號,那麼就要用到and操作符 那如果是查詢部門編號為d001或者入職日...