程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言中的const

C語言中的const

編輯:關於C語言

C語言中的const


C語言的中的const,代表的含義是”不可改變的變量“,或者可以成為”偽常量“

C++中 const,被稱為”一個有類型描述的常量“

	const int liv_num = 10;
	liv_num = 18;				//error   因為liv_num 被const修飾不可被直接賦值

那麼,我為什麼說是”偽常量“?

 

我們知道在c中給變量賦值,有兩種方式:一種就是直接賦值;一種是間接賦值。

對於第一種方式,我們已經驗證是不可以的。那麼,使用間接賦值是否可以實現對liv_num的值得改變呢?

注意:一定要是.c的文件,如果使用的是.cpp的話,不會出現效果,因為c++中 const,被稱為”一個有類型描述的常量“

 

#include 
#include 

int main()
{
	//定義一個常量
	const int liv_num = 10;
	//liv_num = 18;				//error   因為liv_num 被const修飾不可被直接賦值

	//定義一個指針指向常量
	const int *pliv_num = &liv_num;
	
	//對指向常量的指針進行轉換
	int * pNum = (int *)pliv_num;
	//進行賦值
	*pNum = 20;

	
	printf(liv_num = %d 
,  liv_num);	//結果為:20

	system(pause);
	return 0;
}

通過以上,我們就方向 在c中 const 是 ”偽常量“, 那麼也說明一個問題,const是保存在 ”棧“ 中的, 如果想驗證,可以使用debug,觀察內存,再此不在敘述。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved