C語言關鍵字之const

2021-09-24 10:27:51 字數 1462 閱讀 3522

目錄前言

1.const功能

2.const例項

2.1 const修飾乙個變數

2.2 const修飾指標變數

2.3 函式形參被const修飾

初學c語言時,對於const關鍵字的理解僅僅停留在「不可改變」這一層意思上。本文總結一下const關鍵字在各種情況下的使用方法,及其功能。後續如果遇到新的使用情況會隨時更新。

const修飾的變數,該變數沒有寫許可權,只有讀許可權。所以也可稱被const修飾的變數為常量。後續各種用法本質都遵循這句話。

①變數被const修飾時,必須在定義時進行賦值,因為被const修飾的變數沒有寫許可權,如果不在定義時賦值,編譯會報警告。如果試圖對該變數賦值,編譯會報錯。

②const在修飾變數變數時,位置不做要求。

void function(void)

const在修飾指標變數時,容易混淆。

int a = 100;

int b = 200;

/*1.const修飾*test_1,將test_1作為左值合法,將*test_1作為左值非法*/

const int *test_1=&a;

test_1 = &b; //使用test_1做左值,合法

printf("%d",*test_1); //輸出結果為:200

*test_1 = 200; //使用*test_1做左值,非法

/*2.const修飾test_2,將test_2作為左值非法,將*test_2作為左值合法*/

int * const p2=&a;

*test_2=300; //使用*test_2做左值,合法

printf("%d",*test_2); //輸出結果為:300

test_2=&b; //使用test_2做左值,非法

/*3.const分別修飾*test_3,test_3,將*test_3,test_3作為左值都非法*/

const int * const test_3=&a;

test_3 = &b; //使用test_3做左值,非法

*test_3 = 100; //使用*test_3做左值,非法

只要記住const只鎖定跟他相鄰的變數即可。即:

當const放在 * 之前,修飾的是*test,此時如果對*test賦值就不合法,但是對test賦值合法。

當const放在*之後,修飾的就是test,此時如果對test賦值就不合法,但是對*test賦值合法。

當const放在*之前和之後,那麼對*test和test賦值都不合法。

函式形參被const修飾,則在函式中,不能對此形參進行寫操作,只能讀。

C語言關鍵字之const

const關鍵字是嵌入式程式設計師必須熟悉的。因為它的使用可以增加程式的健壯性,並且使讀者更好地理解程式。它所修飾的變數被叫做 唯讀變數 注意 唯讀變數 常量 千萬不要說被const所修飾的變數就是常量!那只能說明你對const還不太理解!下面就讓我們來分析一下const。首先看以下定義 const...

C語言關鍵字 Const

c中const的使用 雖然這聽起來很簡單,但實際上,const的使用也是c語言中乙個比較微妙的地方,微妙在何處呢?請看下面幾個問題。問題 const變數 常量 為什麼下面的例子在使用乙個const變數來初始化陣列,ansi c的編譯器會報告乙個錯誤呢?const int n 5 int a n 答案...

C語言關鍵字const

const 是constant的縮寫,只要有變數前面用const修飾,就意味著該變數裡面的資料是readonly。const可以修飾基本型別,構造型別,指標,等。const int a 10 去掉int a 的值不變 int const a 10 去掉int a的值不變 const int a 10...