1樓:飄渺世間天
寒...
不過先宣告我以下的內容是針對c++而言...
對於除指標以外的其他常量宣告句法來說,
const type name
和type const name
的效果是相同的, 即都宣告乙個型別為type名為name的常量,如:
const int x = 1;
和int const x = 1;
還有int x = 1;
const int &y = x;
和int const &y = x;
都是等效的, 只是寫法的風格不同而已, 有人喜歡用const type name, 比如stl的**; 另外一些人喜歡寫成type const name, 比如boost中的大量**, 其實效果都是一樣的。
對於指標來說, const出現在*號的左邊還是右邊或是左右都有才有區別, 具體的:
const type *p; // 乙個不能修改其指向物件的type型指標
// 其實和type const *p等效
type * const p; // 乙個不能修改其自身指向位置的type型指標
const type * const p;
// 乙個既不能修改其指向物件也不能修改其自身指向位置的type型指標
// 也和type const * const p等效
而c++中的引用當引用了乙個值後,就不能把其修改為引用另外乙個值,這相當於type * const p的指標, 如:
int a, b;
int &c = a; // 宣告時就和a繫結在一起
c = b; // 是把b的值賦給a, 而不是把b作為c的另乙個引用
所以引用的功能其實和type * const p指標是相同的, 即其引用(指向)的位置不可改變, 如果宣告引用時再加上const, 其實就相當於const type * const p型的指標了, 所以宣告引用時,const type &name 和 type const &name等效的...
2樓:
const int &x表示這個引用是const型別的,也就是不能再更換引用的物件,只能永遠引用這個變數。
int const &x表示引用的是乙個const型別的變數,這個被引用的變數的內容不能改變,但這個引用可以更換為其他的變數。也就是說這個引用是可以更換為其他變數的引用的
3樓:匿名使用者
c沒有&引用這概念。。。
const int &x是說引用指向的物件是const int型別;
int const &x也是表示引用的物件是const int型別;
一樣的,糊塗了。。。。
4樓:天之魔神
沒什麼區別 都是常量,不過你最好說出來你用的什麼語言 c還是c++
c語言裡const int 和int 有什麼區別,const的作用是什麼。
5樓:大野瘦子
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、可以保護被修飾的東西,防止意外的修改,增強程式的健壯性。
6樓:杜xiao若
一、區別如下:bai
1、int定義du的量是變數,它的值可以更改;zhi而const int 定義的是乙個常量dao,它的回值不可以更改。答
2、int在定義的時候,不需要初始化,而const int 在定義的時候必須初始化;
二、const的作用:把物件轉換成乙個常量拓展資料const與define。兩者都可以用來定義常量,但是const定義時,定義了常量的型別,所以更精確一些。
#define只是簡單的文字替換,除了可以定義常量外,還可以用來定義一些簡單的函式,有點類似內聯函式(inline)。const和define定義的常量可以放在標頭檔案裡面。
7樓:匿名使用者
怎麼會有人說沒有區別的。。沒區別還要這個東西幹蛋。。
在取指標版方面,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不可以被更改,是有著變數外衣的常數。
8樓:匿名使用者
首先bai要明白const起的是強調唯讀屬性du的作用 把一zhi個數或者指標當作常量dao看待專
const int a = 10; a= 15;//不能直接修改常量 int a = 10; a = 15; //可以直接修改
雖然屬加了const不能直接修改 但是可以通過指標間接修改通過加volatile關鍵字強調從變數位址讀取變數的值 保證資料不會從暫存器中讀取導致修改失敗
列印a的結果為2
9樓:匿名使用者
const int表示這個值是個常整型,必須在宣告的同時初始化,並且初始化之後值就不能再被改變
10樓:匿名使用者
兩個沒有區別,但當const修飾的是指標時就有區別.
const int* a
int* const a ;
如果const位於星號的左側,則const就是用來修飾版指標所指向的變數,權即指標指向為常量;如果const位於星號的右側,const就是修飾指標本身,即指標本身是常量
11樓:匿名使用者
const int型別一旦定義以後就不能修改,int型別是隨時可以修改的。
12樓:above霜天之上
在c++中:
const 是常數的意思
const int 型別資料不能修改
int 型別資料可以修改
c++在函式宣告時,後面跟個const是什麼意思?
13樓:幻翼高達
c++在函式宣告時,後面跟個const是限定函式型別為常成員函式, 常成員函式是指不能改變成員變數值的函式。
例如「double d() const;」,其中的其中的「const」限定了d()函式中不能有任何改變其所屬物件成員變數值的功能,如果有則會在編譯階段就報錯。
它的主要作用就是能使成員函式的意義更加清楚,我們可在不改變物件的成員函式的函式原型中加上const說明。在需要增加可讀性和減少邏輯出錯的情況下,就可以用這種形式。
我們定義的類的成員函式中,常常有一些成員函式不改變類的資料成員,也就是說,這些函式是"唯讀"函式,而有一些函式要修改類資料成員的值。如果把不改變資料成員的函式都加上const關鍵字進行標識,顯然,可提高程式的可讀性。
另外,它還能提高程式的可靠性,已定義成const的成員函式,一旦企圖修改資料成員的值,則編譯器按錯誤處理。
14樓:釗鉼
const是乙個c語言(ansi c)的關鍵字,具有著舉足輕重的地位。它限定乙個變數不允許被改變,產生靜態作用。
使用const在一定程度上可以提高程式的安全性和可靠性。另外,在**別人**的時候,清晰理解const所起的作用,對理解對方的程式也有一定幫助。另外const在其它程式語言中也有出現,例如pascal、c++、php5、b#.
net、hc08 c、c#等。
const的作用:
1、可以定義const常量,具有不可變性。
2、便於進行型別檢查,使編譯器對處理內容有更多了解,消除了一些隱患。
3、可以避免意義模糊的數字出現,同樣可以很方便地進行引數的調整和修改。 同巨集定義一樣,可以做到不變則已,一變都變!
c++是c語言的繼承,它既可以進行c語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。c++擅長物件導向程式設計的同時,還可以進行基於過程的程式設計,因而c++就適應的問題規模而論,大小由之。
c++不僅擁有計算機高效執行的實用性特徵,同時還致力於提高大規模程式的程式設計質量與程式語言的問題描述能力。
15樓:匿名使用者
這兒的const就是說這個函式操作不會對變數或是物件之類的值有影響 比如你有乙個human類 你現在要得到某個human類物件a的age 那麼肯定是不會因為你想得到這個值而改變了age的大小 對吧 那麼你就可以寫乙個函式int getage()const這樣就好 這麼做是為了防止你在函式中對不應該在這裡改變的量不小心進行了改變
16樓:韌勁
非靜態成員
函式後面加const(加到非成員函式或靜態成員後面會產生編譯錯誤),表示成員函式隱含傳入的this指標為 const指標,決定了在該成員函式中,任意修改它所在的類的成員的操作都是不允許的(因為隱含了對this指標的const引用);唯一的例外是對於 mutable修飾的成員。加了const的成員函式可以被非const物件和const物件呼叫,但不加const的成員函式只能被非const物件調 用。例如:
class a
int geta() const
int geta()
int seta(int a) constint seta(int a)
};a a1;
const a a2;
int t;
t = a1.geta();
t = a1.geta();
t = a2.geta();
t = a2.geta(); //a2是const物件,呼叫非const成員函式產生編譯錯誤。
11和54,24和36,26和52,12和30的最大公因數和
1 11的因數有1,11 54的因數有1,2,3,6,9,18,27,54,所以11和54最大公因數是1。根據性質,兩個數的最大公因數和最小公倍數之積等於該兩個數之積,所以最小公倍數11 54 1 594 2 24的因數有1,2,3,4,6,8,12,24 36的因數有1,2,3,4,6,9,12,...
廣東話的「罵」和「生氣」和「休息」和「丟臉」和「襪子」和「手套」怎麼說
廣東話的 罵 是讀 鬧 例 今天給我老爸罵了一頓 今日俾我老豆鬧咗一餐廣東話的 生氣 是讀 嬲 乙個字就可以了 例 你不要生氣好不好 你唔冇嬲啦廣東話的 休息 可以直接讀 休息 或者是 頭下 例 累了,休息一下吧 攰喇,頭下先啦 攰喇,休息下先啦!廣東話的 丟臉 是讀 丟假 例 去那樣的場面,真丟臉...
萬和jsq和jslq什麼區別,萬和JSQ和JSLQ什麼區別
萬和jsq20 10st56詳細引數 技術引數 系列名稱st56系列 額定功率40w 額定熱負荷20kw 熱水產率10公升 分 額定壓力0.2mpa 適用水壓0.02 1.0mpa 電源規格220v 50hz 基本引數 點火方式水控全自動 排氣方式強排式 顯示屏超大數字屏顯 控制方式觸控操作 使用燃...