c語言裡constint和int有什麼區別const的作用是

2021-04-18 21:59:27 字數 5311 閱讀 4169

1樓:大野瘦子

1、內容不

e68a84e8a2ad62616964757a686964616f31333431333963同

constint* p; //p可變,p指向的內容不可變,int const* p; //p可變,p指向的內容不可變。 int* const p; //p不可變,p指向的內容可變 const int* const p; //p和p指向的內容都不可變。

2、取指標

const int型別一旦定義以後就不能修改,int型別是隨時可以修改的。

3、返回值

const int是返回這個數值的一個常量的引用。

而int是返回這個數值的一個拷貝。

const作用:

1、可以定義const常量,具有不可變性。

例如:const int max=100; max++會產生錯誤。

2、便於進行型別檢查,使編譯器對處理內容有更多瞭解,消除了一些隱患。

例如: void f(const int i) 編譯器就會知道i是一個常量,不允許修改。

3、可以保護被修飾的東西,防止意外的修改,增強程式的健壯性。

2樓:杜xiao若

一、區別如下:bai

1、int定義du的量是變數,它的值可以更改;zhi而const int 定義的是一個常量dao,它的回值不可以更改。答

2、int在定義的時候,不需要初始化,而const int 在定義的時候必須初始化;

二、const的作用:把物件轉換成一個常量拓展資料const與define。兩者都可以用來定義常量,但是const定義時,定義了常量的型別,所以更精確一些。

#define只是簡單的文字替換,除了可以定義常量外,還可以用來定義一些簡單的函式,有點類似行內函數(inline)。const和define定義的常量可以放在標頭檔案裡面。

3樓:匿名使用者

怎麼會有人說沒有區別的。。沒區別還要這個東西幹蛋。。

在取指標版方面,const有略複雜的東西權,但是常規的、合理的操作不應該涉及到,因為const int是用來儲存一些全域性常量的,這些常量在編譯期可以改,在執行期不能改,聽起來這像巨集,其實這確實就是用來取代巨集的:

#define pi 3.14

const float pi = 3.14;

如果你的**裡用到了100次pi(巨集),你的**中會儲存100個3.14這個常數,鑑於使用常數進行運算的機器**很多時候會比使用變數來的長,如果你換用100次pi(const float),程式編譯後的機器碼裡就不需要出現100次常量3.14,只要在需要的時候引用存有3.

14的常量就行了,特別在複雜的運算裡,3.14這個常量(其實是無法修改的變數)會被一直裝載在暫存器裡帶來一些效能提升。

清楚了const的用法,const int和int的區別就很簡單,int i裡的i可以被更改,是真正的變數,const int i的i不可以被更改,是有著變數外衣的常數。

4樓:匿名使用者

首先bai要明白const起的是強調只讀屬性du的作用 把一zhi個數或者指標當作常量dao看待專

const int a = 10; a= 15;//不能直接修改常量 int a = 10; a = 15; //可以直接修改

雖然屬加了const不能直接修改 但是可以通過指標間接修改通過加volatile關鍵字強調從變數地址讀取變數的值 保證資料不會從暫存器中讀取導致修改失敗

列印a的結果為2

5樓:匿名使用者

const int表示這個值是個常整型,必須在宣告的同時初始化,並且初始化之後值就不能再被改變

6樓:匿名使用者

兩個沒有區別,但當const修飾的是指標時就有區別.

const int* a

int* const a ;

如果const位於星號的左側,則const就是用來修飾版指標所指向的變數,權即指標指向為常量;如果const位於星號的右側,const就是修飾指標本身,即指標本身是常量

7樓:匿名使用者

const int型別一旦定義以後就不能修改,int型別是隨時可以修改的。

8樓:above霜天之上

在c++中:

const 是常數的意思

const int 型別資料不能修改

int 型別資料可以修改

c語言中 const int n=5,與int n=5有什麼區別?

9樓:匿名使用者

int a=5; //a可以被重新賦值

const int b=5; //b不可以被重新賦值,如果有被賦值情況會報錯

對於一些常量來說都加const,避免自己寫程式時候誤操作.

10樓:鑄信

const修飾的資料型別是指常型別,常型別的變數或物件的值是不能被重新賦值的。那個要寫成int

c語言中const是什麼意思。。。

11樓:a羅網天下

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所指向的物件,也就是說這個指標變數以及這個指標變數所指向的物件都是不能進行修改的。

使用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;不報錯。必須初始化指標的指向強烈建議在初始化時說明指標的指向,防止出現野指標!

12樓:**ile逝季

const關鍵字的作用主要有以下幾點:

1、可以定義const常量,具有不可變性。

例如: const int max=100; int array[max];

2、便於進行型別檢查,使編譯器對處理內容有更多瞭解,消除了一些隱患。例如: void f(const int i) 編譯器就會知道i是一個常量,不允許修改;

3、可以避免意義模糊的數字出現,同樣可以很方便地進行引數的調整和修改。

4、可以保護被修飾的東西,防止意外的修改,增強程式的健壯性。 還是上面的例子,如果在函式體內修改了i,編譯器就會報錯;

例如:void f(const int i)

5、 為函式過載提供了一個參考。

class a //一個函式

void f(int i) const //上一個函式的過載 ......

}; 6、 可以節省空間,避免不必要的記憶體分配。

const定義常量從彙編的角度來看,只是給出了對應的記憶體地址,而不是象#define一樣給出的是立即數。

所以,const定義的常量在程式執行過程中只有一份拷貝,而#define定義的常量在記憶體中有若干個拷貝。

7、提高效率。 編譯器通常不為普通const常量分配儲存空間,而是將它們儲存在符號表中,這使得它成為一個編譯期間的常量,沒有了儲存與讀記憶體的操作,使得它的效率也很高。

13樓:匿名使用者

const int a;

int const a;

這兩個是一樣的 都是a這個值不可改變。

const int *a;

int * const a;

這兩個就有不同了。

首先第一個是一個指標a,所指向的地址空間內容不可改變,但是a本身可以改變指向。

第二個,a本身的指向不可改變,但是他指向的空間內容可以改變。

有什麼不明白的加我msn [email protected]

14樓:匿名使用者

1)、const在前面

const int nvalue; //nvalue是const

const char *pcontent; //*pcontent是const, pcontent可變

const (char *) pcontent;//pcontent是const,*pcontent可變

char* const pcontent; //pcontent是const,*pcontent可變

const char* const pcontent; //pcontent和*pcontent都是const

2)、const在後面,與上面的宣告對等

int const nvalue; // nvalue是const

char const * pcontent;// *pcontent是const, pcontent可變

(char *) const pcontent;//pcontent是const,*pcontent可變

char* const pcontent;// pcontent是const,*pcontent可變

char const* const pcontent;// pcontent和*pcontent都是const

C語言,DEVc裡float和double

include include int main lf 和 1f 你看不出區別麼 l 的小寫 不是數字 一 c語言中的double和float double與float的區別在於bai在記憶體中存放數du據時佔用的記憶體不一樣 zhi,前者dao8位元組,後者4位元組,也就回是前者儲存的小數位數答 ...

c語言裡和的區別,C語言中, 和 有什麼區別, 和 有什麼區別

表示 與 意思是條件必須同時成立 表示 或 意思是條件有一個成立即可.if a a b b c c b b c c a a c c a a b b 這個是判斷銳角三角形的條件,你只要學過數學就應該知道銳角三角形的成立條件是 任意兩邊長度的平方和大於第三邊長度的平方。所以要用 而不是 因為if a a...

d在c語言裡是什麼意思,在C語言中c 和 d 是表示什麼意思

c語言中 d表示忽略第一個整數,而 d中的 是一個標誌符號,用來表示跳過它相應的回資料,表示輸出的資料區答和它對應的資料表示輸出的空格個數,從而使下一個輸入的內容複製給緊接著的變數。c語言格式介紹 d是輸出整型資料,和格式字元組合在一起的作用是將輸出的資料轉換為指定的格式輸出。d是帶符號整數,意思就...