在實際的開發過程中,您是否聽過指標常量和常量指標?又是否知道它們之間的區別呢?雖然兩者的名稱是非常相似的,但是兩者的工作原理卻有著很大的區別。
本文目的便是希望能夠讓大家理解起來更加容易,如有不足和疏漏之處,還望各位讀者不吝指正,謝謝!
指標本身是乙個常量,即指標的指向是不能更改的,但是可以通過指標修改指向的變數的值。
int testnum1 =
60,testnum2 =90;
//初始化兩個整型變數
int*
const pnum =
&testnum1;
//將testnum1的位址賦值給pnum
*pnum =88;
//通過指標修改testnum1的值
pnum =
&testnum2;
//錯誤,pnum只能指向testnum1變數,而不能更改指向
指標指向乙個常量資料,即不能通過指標修改指向的變數,但是可以直接更改該變數的值,也可以修改指標的指向。
int testnum1 =
20,testnum2 =30;
const
int* pnum =
&testnum1;
//將testnum1的位址賦值給pnum指標變數
*pnum =50;
//錯誤,嘗試通過常量指標修改testnum1變數,這是不合法的
testnum1 =60;
//可以直接修改testnum1變數的值
pnum =
&testnum2;
//將testnum2變數的位址賦值給pnum,這是合法的
cout <<
"testnum2的值為:"
<<
*pnum << endl;
//輸出30
在實際應用中,如果既不希望更改指標的指向,也不希望更改指標指向的變數的值,那麼可以結合上述兩種方法進行實現。
程式說明如下:
int testnum1 =
88,testnum2 =99;
const
int*
const pnum =
&testnum1;
*pnum =
100;
//錯誤,不能通過pnum修改testnum1的值
testnum1 =
200;
//正確,可以直接修改變數的值
pnum =
&testnum2;
//錯誤,不能修改pnum的指向
C 入坑系列之字元的處理
字元型資料char是程式語言中的一種非常常見的資料型別。在學提時代,當我們需要判斷鍵盤輸入的資料是否是字元或者判斷字母的大小寫時,常常是通過對ascii進行比較完成的。但其實,標準為我們提供了乙個專門用於處理上述需求的函式庫c語言中的ctype或者c 中的cctype,我們只需要包含了相應的標頭檔案...
C 之新手入坑
1.經過開發了乙個小球類的的遊戲,收穫了很多知識,但是我卻發現有很多時間是在查詢資料,是在查詢一下很基本的知識,同時c 不同平台的有些東西並不通用 2.開始的時候對於更新ui,我們準備用thread,但是我們卻發現命名空間中沒有thread,然後我們轉向了async和await,發現也不行,最後終於...
C和指標 const指標
一,入門 const 指標 指標指向的內容不能變,指標可以改變指向 指向const的指標 指標不可以改變指向,指標指向內容可以變 include stdio.h int main 二,深度解析 大致說來其可分為三種情況 const修飾指標,const修飾引用,const修飾指標的引用.const修飾...