const修飾符可以把對象轉(zhuǎn)變成常數(shù)對象,什么意思呢?
意思就是說利用const進(jìn)行修飾的變量的值在程序的任意位置將不能再被修改,就如同常數(shù)一樣使用!
使用方法是:
const int a=1;//這里定義了一個int類型的const常數(shù)變量a;
但就于指針來說const仍然是起作用的,以下有兩點要十分注意,因為下面的兩個問題很容易混淆!
我們來看一個如下的例子:
#include
using namespace std;
void main(void)
{
const int a=10;
int b=20;
const int *pi;
pi=&a;
cout <<*pi << "|" << a < pi=&b;
cout <<*pi << "|" < cin.get();
}
上面的代碼中最重要的一句是 const int *pi
這句從右向左讀作:pi是一個指向int類型的,被定義成const的對象的指針;
這樣的一種聲明方式的作用是可以修改pi這個指針?biāo)赶虻膬?nèi)存地址卻不能修改指向?qū)ο蟮闹担?BR> 如果你在代碼后加上*pi=10;這樣的賦值操作是不被允許編譯的!
好,看了上面的兩個例子你對const有了一個基本的認(rèn)識了,那么我們接下來看一個很容易混淆的用法!
意思就是說利用const進(jìn)行修飾的變量的值在程序的任意位置將不能再被修改,就如同常數(shù)一樣使用!
使用方法是:
const int a=1;//這里定義了一個int類型的const常數(shù)變量a;
但就于指針來說const仍然是起作用的,以下有兩點要十分注意,因為下面的兩個問題很容易混淆!
我們來看一個如下的例子:
#include
using namespace std;
void main(void)
{
const int a=10;
int b=20;
const int *pi;
pi=&a;
cout <<*pi << "|" << a <
cout <<*pi << "|" < cin.get();
}
上面的代碼中最重要的一句是 const int *pi
這句從右向左讀作:pi是一個指向int類型的,被定義成const的對象的指針;
這樣的一種聲明方式的作用是可以修改pi這個指針?biāo)赶虻膬?nèi)存地址卻不能修改指向?qū)ο蟮闹担?BR> 如果你在代碼后加上*pi=10;這樣的賦值操作是不被允許編譯的!
好,看了上面的兩個例子你對const有了一個基本的認(rèn)識了,那么我們接下來看一個很容易混淆的用法!