① c語言中const 是什麼意思,怎麼用,什麼時候用
以這個為例const int i=100;
這表示i的值不能被改變,也就是常變數,如果你在程序中再給i賦值,比如i=200;
這就會報錯。也可用在函數上,格式:int sort(int ,int) const{}
用處:讓不想改變的變數不被無意或有意的改變。。。
② C語言 變數 被賦值後如何轉化成 常量
你是不是想做這樣的事情:
int n=5;
int arr[n];
這是不可能的,初學者包括我當年也想這樣干,但C語言不允許。
類似這樣的問題,解決的方法,一是估計你可能需要的最大空間,比喻說,你估計可能需要最多1000個數組,那就以下子分配這么多的空間:
#define MaxVal 1000
int arr[MaxVal];
然後再配個一個變數紀錄實際需要的個數。
另一種代替方法是動態分配,用malloc函數,關於這個自己查查資料吧
③ 關於c語言裡面的const
char *cp;
定義了一個指針變數,指向char
const char *ccp
定義了一個指針變數,指向const char。和上面不同的是,你不能修改ccp所指向的東西的值。
也就是說,像下面這樣的語句是非法的。(假定ccp已經初始化過,指向某處了),編譯器會報錯。
*ccp = 'a'; // 試圖修改ccp所指區域。
把cp賦值給ccp是安全的。
因為cp指向一個可以讀寫的地址,而ccp保證只對那個地址讀,而不向那個地址寫。
相反,把ccp賦值給cp是不安全的。
因為ccp指向的是一個不希望被寫的區域。而cp卻沒有保證說他一定不會去寫他所指的區域。
cp的使用者完全有權利這樣做
*cp = 'a'; // 這是完全合法的操作
但是,當他這樣做的時候,原先ccp指向的,不希望被改寫的部分,被修改了。
所以編譯器會提出警告。
④ 關於c語言的一個小問題
const是一個C語言的關鍵字,它限定一個變數不允許被改變。也就是說定義了兩個float變數MIN,MAX,值分別為0.0,100.0,在之後的代碼中不允許修改MIN,MAX的值。
注意:
100.0後面f的作用是小數默認是double類型的,f的作用是將double類型強制轉換為float類型。
⑤ c語言問題,這些函數後邊跟個const 啥意思 求解
const 限定符,它把一個對象轉換成一個常量。
1.》》const與define。兩者都可以用來定義常量,但是const定義時,定義了常量的類型,所以更精確一些。#define只是簡單的文本替換,除了可以定義常量外,還可以用來定義一些簡單的函數,有點類似內聯函數(Inline)。const和define定義的常量可以放在頭文件裡面。(小註:可以多次聲明,但只能定義一次)
2.》》const與指針和引用。
(a)const與指針。
先來看看下面的幾種定義:
intme;
constint*p1=&me;//p1可變,*p1不可變,此時不能用*p1來修改,但是p1可以轉向
int*constp2=&me;//p2不可變,*p2可變,此時允許*p2來修改其值,但是p2不能轉向。
constint*constp3=&me;//p3不可變,*p3也不可變,此時既不能用*p3來修改其值,也不能轉向
(b)指針和引用的區別很簡單,就是引用更簡潔,更安全。因為引用聲明時必須初始化。 引用更接近const指針,一旦與某個變數關聯,就將一直效忠於他。
(c)const指針可以接受const和非const地址,但是非const指針只能接受非const地址。所以const指針的能力更強一些,所以盡量多用const指針,這是一種習慣。
3.》》(a)const與函數。由於2(c),所以經常把函數的形參類型設為const,而且多為const 引用。但是這里有一個限制,不能把不是左值的地址傳遞給引用。(左值包括變數,數組元素,結構成員,引用,被解除引用的指針等)。 形參是const類型的,說明該函數將不會修改其值,該函數便為const函數。
(b)const與類成員函數。先看看下面這段代碼:
constStockland=Stock("hyd");
land.show();
land 是常量,但是類成員函數show無法保證不修改land,所以編譯器將拒絕執行該段代碼。除非你能保證show像const函數一樣,但這需要另外一種語法,即:
void show() const; //聲明
void Stock::show() const{} //定義
⑥ C語言中const是什麼意思。。。
const 推出的初始目的,正是為了取代預編譯指令,消除它的缺點,同時繼承它的優點。
const關鍵字使用非常的靈活,這一點和php差別很大,php中const用來在類中定義一個常量,而在c中,const因位置不同有不同的作用,因情景不同有不同的角色,使用起來也是非常的靈活。
一、const用來修飾普通的變數(指針變數除外)的時候,const type name 和 type const name 這兩種形式是完全等價的,都表示其是常量,不能進行修改。
二、const用來修飾指針變數的時候,分為以下四種情況
1、const type *name :這種情況下,const修飾的指針變數name所指向的type類型對象,也就是說指向的這個對象是不能進行修改的,因為其是常量,而指針變數確實可以進行修改的。
2、type const *name :這種情況下,const修飾的指針變數name所指向的type類型對象,意思完全同上,只是顛倒了以下順序。
3、type * const name :這種情況下,const修飾的指針變數name,也就是說這個指針變數的值是不能進行修改的,但是指針變數所指向的對象確實可以修改的。
4、const type * const name :這種情況下,const修飾的指針變數name以及指針變數name所指向的對象,也就是說這個指針變數以及這個指針變數所指向的對象都是不能進行修改的。
(6)c語言賦值之後再const擴展閱讀
使用const在一定程度上可以提高程序的安全性和可靠性。另外,在觀看別人代碼的時候,清晰理解const所起的作用,對理解對方的程序也有一定幫助。另外CONST在其它編程語言中也有出現,例如Pascal、C++、PHP5、B#.net、HC08 C、C#等。
在c中,對於const定義的指針,不賦初值編譯不報錯,int* const px;這種定義是不允許的。(指針常量定義的時候對其進行初始化)int const *px;這種定義是允許的。(常指針可以再定義的時候不初始化)
但是,在C++中int* const px;和const int* const px;會報錯,const int* px;不報錯。必須初始化指針的指向int* const px = &x;const int* const px=&x;強烈建議在初始化時說明指針的指向,防止出現野指針!
⑦ 計算機C語言中的關鍵字:const是什麼意思
const
修飾數字的話就表示為常數
const
修改指針的話就表示指針指向的地址不可改變(地址中存的值可以變)
⑧ c語言中const 是什麼意思,怎麼用,什麼時候用
常類型是指使用類型修飾符const說明的類型,常類型的變數或對象的值是不能被更新的。
const 推出的初始目的,正是為了取代預編譯指令,消除它的缺點,同時繼承它的優點。