偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Linux編程const使用詳細(xì)介紹

系統(tǒng) Linux
如果const位于星號的左側(cè),則const就是用來修飾指針?biāo)赶虻淖兞?,即指針指向為常?如果const位于星號的右側(cè),const就是修飾指針本身,即指針本身是常量。

Linux編程const使用詳細(xì)介紹

一、const基礎(chǔ)

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

  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ū)分出上述四種情況,那么,恭喜你,你已經(jīng)邁出了可喜的一步。不知道,也沒關(guān)系,我們可以參考《Effective c++》Item21上的做法,如果const位于星號的左側(cè),則const就是用來修飾指針?biāo)赶虻淖兞浚粗羔樦赶驗槌A?如果const位于星號的右側(cè),const就是修飾指針本身,即指針本身是常量。因此,[1]和[2]的情況相同,都是指針?biāo)赶虻膬?nèi)容為常量(const放在變量聲明符的位置無關(guān)),這種情況下不允許對內(nèi)容進(jìn)行更改操作,如不能*a = 3 ;[3]為指針本身是常量,而指針?biāo)赶虻膬?nèi)容不是常量,這種情況下不能對指針本身進(jìn)行更改操作,如a++是錯誤的;[4]為指針本身和指向的內(nèi)容均為常量。

另外const 的一些強大的功能在于它在函數(shù)聲明中的應(yīng)用。在一個函數(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;  

 

責(zé)任編輯:龐桂玉 來源: 嵌入式Linux中文站
相關(guān)推薦

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-04 10:54:45

Linux telne

2010-03-04 11:07:24

Linux finge

2010-03-09 16:11:59

Linux重定向

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-06-28 11:06:16

Scala

2011-07-20 13:57:06

C++STL

2010-03-02 14:01:58

Linux硬件信息命令

2010-03-05 15:20:25

Linux man命令

2011-07-19 09:25:52

2011-07-20 16:57:05

C++const

2010-01-05 16:56:28

2010-06-23 15:36:23

Linux Bug B
點贊
收藏

51CTO技術(shù)棧公眾號