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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【C language】C语言感悟之const

發布時間:2025/4/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C language】C语言感悟之const 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄


#1、簡介
const :限定符,它把一個對象轉換成一個常量。const是一個C語言(ANSI C)的關鍵字,具有著舉足輕重的地位。它限定一個變量不允許被改變,產生靜態作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在觀看別人代碼的時候,清晰理解const所起的作用,對理解對方的程序也有一定幫助。

令人又愛又恨的const

#2、用法
##2.1 const用來修飾普通變量
有定義如下

const int Val=5; int const Val=5;

以上兩種寫法,效果是一樣的,含義都是:不能通過Val這個變量名,來修改該地址的值;C語言與其他高級語言的區別就是它是直接操作內存的功能,即定義了Val,那么編譯器就會開辟一個int型的內存來存放5,Val此時便作為這塊內存的地址別名

由于Val的修飾關鍵字是const,此時如果我們用 Val=10;編譯器將報錯,那么有沒有其他方法可以修改這塊內存的值呢?答案是 不一定:在VC++ 6.0中,是可以通過以下操作來修改Val的值,而在VS和DEVC++中卻會報錯,這不知道算不算VC6.0的BUG…

定義一個指針,使它指向Val這塊內存

int *p = &Val; *p=10; printf("%d\n",Val);/* 此時Val的值由5變為10 */

##2.2 const常量指針與指針常量
一開始看到這個我也是懵逼的,后來網上有個dalao說這樣記:以 * 為劃分,const在 * 左邊的,即為常量指針;const在 * 右邊的,即為指針常量;

const int* Val = 5; //常量指針 int* const Val = 5; //指針常量

###2.2.1常量指針
const用來一個修飾變量指針,便成為一個常量指針,寫法如下:

const int* Val; int const* Val;

它的含義是:不能通過這個指針來修改這個變量的值,但是可以通過其他的方式來修改變量的值:

int Num = 0;const int* Val = &Num; //Val的值為0;Num = 10; //Val的值此時變為10;

常量指針指向的值不能改變,但是這并不是意味著指針本身不能改變,常量指針可以指向其他的地址。可以通過使該指針指向其他地址

int Num_0 = 1;int Num_1 = 2;const int* n = &Num_0; //*n的值為1;n = &Num_1; //*n的值為2;

###2.2.2指針常量
const寫在 * 的右邊,含義是:這個指針本身是個常量,指向的地址不能改變;但是它所指向的地址的值卻是可以改變的。
寫法如下:

int* const Val;

我們可以通過其他指向該地址的指針來改變地址的值

int a=0;int *p=&a;int *const c = &a;//c的值為0;*p=10; //c的值為10;

##2.3 const用來修飾函數參數
const用來修飾函數中的傳入參數

int Function(int* arg,const int* str)//防止函數體中改變str的值 int Function(int* arg,int* const str)//str指向的地址不能被改變

#3、總結
1、常量指針含義是:不能通過這個指針修改變量的值,可以通過直接操作內存的方式或者令指針指向其他地址的方式來修改變量的值。 (2.2.1)
2、指針常量的含義是:指針指向的地址不能改變,但是可以通過其他同樣指向該地址的指針來修改值。 (2.2.2)
3、個人愚見:合理應用常量指針和指針常量修飾函數的傳入參數,可以避免函數體中對傳入參數的修改,適合用于一些重要數據的保存與發送的場合。

總結

以上是生活随笔為你收集整理的【C language】C语言感悟之const的全部內容,希望文章能夠幫你解決所遇到的問題。

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