C++中const什么意思?
在标准C++中,这样定义的是一个常量,用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。
const使用(类型):
1、用于指针的两种情况:const是一个左结合的类型修饰符.
int const*A;//A可变,*A不可变
int*const A;//A不可变,*A可变
2、限定函数的传递值参数:
void function(const int Var);//传递过来的参数在函数内不可以改变.
3、限定函数返回值型.
const int function();//此时const无意义
const myclassname function();//函数返回自定义类型myclassname.
4、限定函数类型.
void function()const;//常成员函数,常成员函数是不能改变成员变量值的函数。
扩展资料:
总结:
1、指针本身是常量不可变
(char*) const pContent;
const (char*) pContent;
2、指针所指向的内容是常量不可变
const (char) *pContent;
(char) const *pContent;
3、 两者都不可变
const char* const pContent;
4、其中区别方法:
沿着*号划一条线,
如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。
5、const修饰函数参数
const修饰函数参数是它最广泛的一种用途,它表示函数体中不能修改参数的值(包括参数本身的值或者参数其中包含的值)。它可以很好
void function(const int Var); //传递过来的参数在函数内不可以改变(无意义,因为Var本身就是形参)
void function(const char* Var); //参数指针所指内容为常量不可变
void function(char* const Var); //参数指针本身为常量不可变(也无意义, 因为char* Var也是形参)
参数为引用,为了增加效率同时防止修改。
6、修饰引用参数时:
void function(const Class& Var);//引用参数在函数内不可以改变
void function(const TYPE& Var); //引用参数在函数内为常量不可变
7、const 修饰函数返回值
const修饰函数返回值其实用的并不是很多,它的含义和const修饰普通变量以及指针的含义基本相同。
(1) const int fun1() 这个其实无意义,因为参数返回本身就是赋值。
(2) const int * fun2()
8、调用时 const int *
参考资料:
百度百科——CONST(C中的CONST)
绛旓細浠ヨ繖涓负渚const int i=100;杩欒〃绀篿鐨勫间笉鑳借鏀瑰彉锛屼篃灏辨槸甯稿彉閲忥紝濡傛灉浣犲湪绋嬪簭涓啀缁檌璧嬪硷紝姣斿i=200;杩欏氨浼氭姤閿欍備篃鍙敤鍦ㄥ嚱鏁颁笂锛屾牸寮忥細int sort(int ,int) const{} 鐢ㄥ锛氳涓嶆兂鏀瑰彉鐨勫彉閲忎笉琚棤鎰忔垨鏈夋剰鐨勬敼鍙樸傘傘
绛旓細鍙橀噺鍒嗕负灞閮ㄤ笌鍏ㄥ眬锛屽眬閮ㄥ彉閲忓張鍙О涔嬩负鍐呴儴鍙橀噺銆傚彉閲忕敱鏌愬璞℃垨鏌愪釜鍑芥暟鎵鍒涘缓鐨勫彉閲忛氬父閮芥槸灞閮ㄥ彉閲忥紝鍙兘琚唴閮ㄥ紩鐢紝鑰屾棤娉曡鍏跺畠瀵硅薄鎴栧嚱鏁板紩鐢ㄣ傚叏灞鍙橀噺鏃㈠彲浠ユ槸鏌愬璞″嚱鏁板垱寤猴紝涔熷彲浠ユ槸鍦ㄦ湰绋嬪簭浠讳綍鍦版柟鍒涘缓銆傚叏灞鍙橀噺鏄彲浠ヨ鏈▼搴忔墍鏈夊璞℃垨鍑芥暟寮曠敤銆備簩銆丆ONST锛C涓殑CONST锛const鏄竴涓狢...
绛旓細璇ヨ瑷涓昏鐢ㄩ旀槸瀹氫箟甯搁噺锛屽嵆涓嶅彲淇敼鐨鍙橀噺銆const鍙互鐢ㄦ潵瀹氫箟甯搁噺锛屽嵆鍦ㄧ▼搴忚繍琛屾湡闂村叾鍊间笉鑳芥敼鍙樼殑鍙橀噺銆備緥濡傦紝const int MAX_VALUE =100锛 瀹氫箟浜嗕竴涓悕涓篗AX_VALUE鐨勫父閲忥紝鍏跺间负100锛屼笖杩欎釜鍊煎湪绋嬪簭杩愯鏈熼棿涓嶈兘琚敼鍙樸俢onst涔熷彲浠ヤ笌鎸囬拡涓璧蜂娇鐢紝浠ラ槻姝㈡寚閽堟寚鍚戠殑鍊艰淇敼銆傚湪鍑芥暟鍙傛暟涓娇鐢...
绛旓細鍦ㄦ爣鍑咰++涓紝杩欐牱瀹氫箟鐨鏄竴涓父閲忥紝鐢ㄦ潵淇グ鍐呯疆绫诲瀷鍙橀噺锛岃嚜瀹氫箟瀵硅薄锛屾垚鍛樺嚱鏁帮紝杩斿洖鍊硷紝鍑芥暟鍙傛暟銆const浣跨敤锛堢被鍨嬶級:1銆佺敤浜庢寚閽堢殑涓ょ鎯呭喌:const鏄竴涓乏缁撳悎鐨勭被鍨嬩慨楗扮.int const*A;//A鍙彉,*A涓嶅彲鍙 int*const A;//A涓嶅彲鍙,*A鍙彉 2銆侀檺瀹氬嚱鏁扮殑浼犻掑煎弬鏁:void function(const int ...
绛旓細const鏄竴涓狢璇█鐨勫叧閿瓧锛屽畠闄愬畾涓涓彉閲忎笉鍏佽琚敼鍙樸備娇鐢╟onst鍦ㄤ竴瀹氱▼搴︿笂鍙互鎻愰珮绋嬪簭鐨勫畨鍏ㄦу拰鍙潬鎬с傚彟澶栵紝鍦ㄨ鐪嬪埆浜轰唬鐮佺殑鏃跺欙紝娓呮櫚鐞嗚Вconst鎵璧风殑浣滅敤锛屽鐞嗚В瀵规柟鐨勭▼搴忎篃鏈変竴浜涘府鍔┿傚彟澶CONST鍦ㄥ叾浠栫紪绋嬭瑷涓篃鏈夊嚭鐜帮紝濡侰++銆丳HP5銆丆#.net銆丠C08 C銆(1)鍙互瀹氫箟const甯搁噺锛屽叿鏈変笉鍙...
绛旓細const 鍩烘湰璇嶄箟 n. 甯告暟;甯搁噺;缁撴瀯;鏋勯;搴烽摐;閾滈晬鍚堥噾;寤虹瓚;寤虹瓚鐗 鍦C璇█涓 const淇グ绗﹀彲浠ユ妸瀵硅薄杞彉鎴愬父鏁板璞★紝浠涔堟剰鎬鍛紵鎰忔濆氨灏辨槸璇村埄鐢╟onst杩涜淇グ鐨勫彉閲忕殑鍊煎湪绋嬪簭鐨勪换鎰忎綅缃皢涓嶈兘鍐嶈淇敼锛屽氨濡傚悓甯告暟涓鏍蜂娇鐢紒浣跨敤鏂规硶鏄細const int a=1;//杩欓噷瀹氫箟浜嗕竴涓猧nt绫诲瀷鐨刢onst甯告暟...
绛旓細鍙互棰勯槻鎰忓鐨鍙樺姩锛屼粠闈㈡彁楂樼▼搴忕殑鍋ュ.鎬с傛瘮濡傦細c璇█鏍囧噯搴撳嚱鏁皊trcpy 浠栫殑鍘熷瀷锛氬師鍨嬪0鏄庯細extern char *strcpy(char dest[],const char *src);杩欏効涓嚱鏁扮浜屼釜鍙傛暟鏄緭鍏ョ殑婧愬瓧绗︿覆锛岃繖涓瓧绗︿覆鑲畾澶ч儴鍒嗘儏鍐典笅涓嶈兘琚慨鏀癸紝涓轰簡闃叉鍦ㄥ嚱鏁颁綋涓淇敼锛屽氨鍔犱竴涓猚onst璁╀粬涓嶈兘琚敼鍔 ...
绛旓細int const b=100; //鍜屼笂闈綔鐢ㄤ竴鏍 const鎸囬拡鍜屽紩鐢ㄤ竴鑸敤鍦ㄥ嚱鏁扮殑鍙傛暟涓 int* m = &a; //鍑洪敊,甯搁噺鍙兘鐢ㄥ父鎸囬拡 int c= 1;const int*pc = &c;//甯告寚閽堝彲鎸囧悜甯搁噺 const int* pa = &a; //鎸囬拡鎸囧悜鐨勫唴瀹逛负甯搁噺(灏辨槸b鐨勫间笉鍙)int const *a = &b; //鎸囬拡鎸囧悜鐨勫唴瀹逛负甯搁噺(...
绛旓細濡傛灉璇ュ嚱鏁版槸涓涓被鐨勬垚鍛樺嚱鏁帮紝鍒欒〃绀烘垚鍛樺嚱鏁伴殣鍚紶鍏ョ殑this鎸囬拡涓篶onst鎸囬拡锛堝嵆鎸囬拡鐨勫间笉鑳戒慨鏀癸紒锛夛紝鍐冲畾浜嗗湪璇ユ垚鍛樺嚱鏁颁腑锛屼换鎰忎慨鏀瑰畠鎵鍦ㄧ殑绫荤殑鎴愬憳鐨勬搷浣滈兘鏄笉鍏佽鐨勶紙鍥犱负闅愬惈浜嗗this鎸囬拡鐨刢onst寮曠敤锛夈
绛旓細C涓殑const锛屽姛鑳芥瘮杈冨崟涓锛岃緝瀹规槗鐞嗚В锛氫綔鐢細琚慨楗扮殑鍐呭涓嶅彲鏇存敼銆備娇鐢ㄥ満鍚堬細 淇グ鍙橀噺锛屽嚱鏁板弬鏁帮紝杩斿洖鍊肩瓑銆傦紙c++涓簲鐢ㄥ満鍚堣涓板瘜鐨勫锛夌壒鐐癸細 鏄繍琛屾椂const锛屽洜姝や笉鑳藉彇浠#define鐢ㄤ簬鎴愪负鏁扮粍闀垮害绛夐渶瑕佺紪璇戞椂甯搁噺鐨勬儏鍐点傚悓鏃跺洜涓烘槸杩愯鏃禼onst锛屽彲浠ュ彧瀹氫箟鑰屼笉鍒濆鍖,鑰屽湪杩愯鏃跺垵濮嬪寲銆傚 ...