const指南

基本詞義 ios

意思就就是說利用const進行修飾的變量的值在程序的任意位置將不能再被修改,就如同常數同樣使用! spa

使用方法指針

const int a=1;//這裏定義了一個int類型的const常數變量a; 

但對於指針來講const仍然是起做用的,如下有兩點要十分注意,由於下面的兩個問題很容易混淆! code

咱們來看一個以下的例子:對象

//程序做者:管寧 //站點:www.cndev-lab.com //全部稿件均有版權,如要轉載,請務必著名出處和做者 
 #include <iostream> 

using namespace std; void main(void) { const int a=10; int b=20; const int *pi; pi=a; cout <<*pi << "|" << a <<endl; pi=b; cout <<*pi << "|" <<b <<endl; cin.get(); } 

上面的代碼中最重要的一句是 const int *pi blog

這句從右向左讀做:內存

  pi是一個指向int類型的,被定義成const的對象的指針ci

這樣的一種聲明方式的做用是能夠修改pi這個指針所指向的內存地址卻不能修改指向對象的值。 get

  若是你在代碼後加上*pi=10;這樣的賦值操做是不被容許編譯的!io

請看以下的代碼 

//程序做者:管寧 //站點:www.cndev-lab.com //全部稿件均有版權,如要轉載,請務必著名出處和做者 
 #include <iostream> 

using namespace std; void main(void) { int a=10; const int *const pi=a; cout <<*pi << "|" <<a <<endl; cin.get(); } 

上面的代碼中最重要的一句是 const int *const pi 

這句從右向座讀做:

  pi是一個指向int類型對象的const指針; 

這樣的一種聲明方式的做用是你既不能夠修改pi所指向對象的內存地址也不能利用指針的解引用方式修改對象的值; 

因此你若是在最後加上*pi=20,想試圖經過這樣的方式修改對象a的值是不被容許編譯的! 

相關文章
相關標籤/搜索