自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux編程const使用詳細介紹

系統(tǒng) Linux
如果const位于星號的左側,則const就是用來修飾指針所指向的變量,即指針指向為常量;如果const位于星號的右側,const就是修飾指針本身,即指針本身是常量。

Linux編程const使用詳細介紹

一、const基礎

如果const關鍵字不涉及到指針,我們很好理解,下面是涉及到指針的情況:

  1. int b = 500; 
  2.  
  3. const int* a = &b; [1] 
  4.  
  5. int const *a = &b; [2] 
  6.  
  7. int* const a = &b; [3] 
  8.  
  9. const int* const a = &b; [4] 

 

如果你能區(qū)分出上述四種情況,那么,恭喜你,你已經邁出了可喜的一步。不知道,也沒關系,我們可以參考《Effective c++》Item21上的做法,如果const位于星號的左側,則const就是用來修飾指針所指向的變量,即指針指向為常量;如果const位于星號的右側,const就是修飾指針本身,即指針本身是常量。因此,[1]和[2]的情況相同,都是指針所指向的內容為常量(const放在變量聲明符的位置無關),這種情況下不允許對內容進行更改操作,如不能*a = 3 ;[3]為指針本身是常量,而指針所指向的內容不是常量,這種情況下不能對指針本身進行更改操作,如a++是錯誤的;[4]為指針本身和指向的內容均為常量。

另外const 的一些強大的功能在于它在函數(shù)聲明中的應用。在一個函數(shù)聲明中,const 可以修飾函數(shù)的返回值,或某個參數(shù);對于成員函數(shù),還可以修飾是整個函數(shù)。有如下幾種情況,以下會逐漸的說明用法:

  1. A& operator=(const A& a); 
  2.  
  3. void fun0(const A* a ); 
  4.  
  5. void fun1( ) const; // fun1( ) 為類成員函數(shù) 
  6.  
  7. const A fun2( ); 

 

二 const的初始化

先看一下const變量初始化的情況

1) 非指針const常量初始化的情況:

  1. A b; 
  2.  
  3. const A a = b; 

 

2) 指針(引用)const常量初始化的情況:

  1. A* d = new A(); 
  2.  
  3. const A* c = d; 

 

或者:

  1. const A* c = new A(); 

引用:

  1. A f; 
  2.  
  3. const A& e = f; // 這樣作e只能訪問聲明為const的函數(shù),而不能訪問一般的成員函數(shù); 

 

[思考1]: 以下的這種賦值方法正確嗎?

  1. const A* c=new A(); 
  2.  
  3. A* e = c; 

 

[思考2]: 以下的這種賦值方法正確嗎?

  1. A* const c = new A();  
  2. A* b = c;  

 

責任編輯:龐桂玉 來源: 嵌入式Linux中文站
相關推薦

2009-08-26 17:31:59

C# const常量

2010-06-23 16:05:36

Linux Bash

2010-03-09 09:55:14

Linux mount

2011-06-21 10:37:56

const

2010-03-09 16:11:59

Linux重定向

2010-03-04 10:54:45

Linux telne

2010-03-04 11:07:24

Linux finge

2010-06-21 16:57:11

Linux Arch

2010-06-11 11:15:33

Linux編程工具

2010-06-02 09:01:20

Linux core

2011-07-12 17:42:46

PHP

2011-07-22 14:55:20

多線程

2011-07-20 13:57:06

C++STL

2011-06-28 11:06:16

Scala

2011-07-20 16:57:05

C++const

2010-03-02 14:01:58

Linux硬件信息命令

2010-06-23 15:36:23

Linux Bug B

2009-12-11 15:59:00

Linux grep指

2009-12-25 14:24:59

Linux指令od

2010-01-05 16:56:28

點贊
收藏

51CTO技術棧公眾號