日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C/C++中的常量指针与指针常量

發布時間:2023/12/2 c/c++ 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C/C++中的常量指针与指针常量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

常量指針

常量指針是指向常量的指針,指針指向的內存地址的內容是不可修改的。

常量指針定義“const int *p=&a;”告訴編譯器,*p是常量,不能將*p作為左值進行操作。但這里的指針p還是一個變量,它的內容存放常量的地址,所以先聲明常量指針再初始化是允許的,指針也是允許修改的,例如:

int a=0,b=1; const int *p; //聲明常量指針p p=&a; //p指向a p=&b; //修改指針p讓其指向b,允許 *p=2; //不允許

指針常量

指針常量是指針的常量,它是不可改變地址的指針,但可以對它所指向的內容進行修改。

指針常量定義"int *const p=&a;"告訴編譯器,p是常量,不能作為左值進行操作,但允許修改其指向的內容,即*p是可修改的。指針常量必須在聲明的同時對其初始化,不允許先聲明一個指針常量隨后再對其賦值,這和聲明一般的常量是一樣的,例如:

int a=0,b=1; int *const p1=&a; int *const p2; //不允許,必須對其初始化 p2=&b; //不允許,p2是常量不允許作為左值 *p1=2; //允許修改指針*p1的值

如果指針作為函數參數,當我們不想被調用函數隨意修改參數指針而只是想修改參數指針指向的內容時,我們常把指針常量作為參數。例如:

有兩個整形變量a,b,我們寫個函數用于交換a,b的值,利用指針作為形參,函數修改參數指針的值是我們不希望的,這時可將參數設為指針常量,如果函數對指針修改編譯是將報錯。

void Exchange(int *const a,int *const b) {int temp;temp=*a;*a=*b;*b=temp }

事實上,如果函數不修改參數本身的值,我們一般對參數加上const限定,這也是提高代碼質量的一個小技巧,在類的方法中,如果方法不修改類屬性的值,我們也常將方法加上const。

總結

以上是生活随笔為你收集整理的C/C++中的常量指针与指针常量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。