int a =1;
int b =2;
const
int* p =
&a;*p =5;
//錯誤,無法通過p來改變a的值
p =&b;
//正確,p的指向可以進行修改
a =5
;//正確
int a =1;
int b =2;
int*
const p =
&a;p =
&b;//錯誤
*p =5;
//正確
a =5
;//正確
int a =1;
int b =2;
const
int*
const p =
&a;p =
&b;//錯誤
*p =5;
//錯誤
a =5
;//正確
可見,上面三種方法,只是針對p指標,但,對於a的值,始終是可以直接進行修改的
如果,要真正保證,a的值不能進行修改。
const
int a =
1;
在c++中,經常使用const指標(第一種),保證某些資料,在指標操作的過程中,其值不被改變。
#include
using
namespace std;
intmain
(int argc,
char
const
*ar**)
輸出:5
#include
using
namespace std;
intmain
(int argc,
char
const
*ar**)
輸出:5
1
const
int m =10;
int n = m;
變數是要占用記憶體的,即使被 const 修飾也不例外。m、n 兩個變數占用不同的記憶體,int n = m;表示將 m 的值賦給 n,這個賦值的過程在c和c++中是有區別的。
在c語言中,編譯器會先到 m 所在的記憶體取出乙份資料,再將這份資料賦給 n;而在c++中,編譯器會直接將 10 賦給 m,沒有讀取記憶體的過程,和int n = 10;的效果一樣。
c++ 中的常量更類似於#define命令,是乙個值替換的過程,只不過#define是在預處理階段替換,而常量是在編譯階段替換。
const使用總結
const 的主要用法是防止物件再次被修改。下面總結一下const的常見使用情況 這樣這個變數在後面就不可以再被修改。const int val 10 val 20 錯誤,不可被修改如果使用引用傳遞引數或按位址傳遞引數給乙個函式,在這個函式裡這個引數的值若被修改,則函式外部傳進來的變數的值也發生改變...
flex中使用json格式
要用到json,看了一篇 的掃盲貼,在flex中使用json十分方便。json是介於純文字方式與xml方式之間的一種格式,json能做到的事情,xml完成可以做到。為什麼要用json呢,我看大部分還是像我一樣,不得不用。json是ajax資料傳輸的首選,現有的專案使用的已經是json,如果增加fle...
C 頂層const,頂層const,引用總結
頂層 const 表示的是指標本身是乙個常量,底層const 表示的是指標所指的物件是乙個常量。頂層const拷貝遵守原則 1.const常量不能改變。2.頂層可忽略。const int a 12 int b a 頂層忽略3 非常量可向常量轉換,const int c b 底層const拷貝,則要求...