锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
浜ゆ崲涓や釜鍙橀噺鏄潪甯稿彜鑰佺殑璇濋浜嗭紝鐒惰屾湰鏂囩粷瀵逛繚璇佺粰浣犳柊椴滅殑鎰熻錛佹湰鏂囨秹鍙婂埌鏈綆鍗曠殑“涓嶇敤涓存椂鍙橀噺浜ゆ崲涓や釜鏁存暟”榪樻秹鍙婂埌濡傛灉鍒╃敤寮傛垨鏉ュ疄鐜頒袱涓寚閽堛佷袱涓誕鐐規暟鐨勪氦鎹紝瑕佺煡閬撴寚閽堢殑嫻偣鏁版槸涓嶅厑璁哥洿鎺ュ紓鎴栬繍綆楃殑鍝︼紱鍚屾椂鏈枃榪橀槓榪頒簡濡備綍浜ゆ崲鐢ㄦ埛鑷畾涔夌被鍨嬪強鍏舵寚閽堛?/p>
鏈枃瀹屽叏鏄釜浜鴻嚜鐢卞彂鎸ヤ箣浣滐紝嬈㈣繋騫垮ぇ鐮栧鏉ユ媿鐮栵紝鎴戜釜浜烘劅瑙夋枃涓繀鐒舵湁寰堝涓嶈凍錛岀敋鑷抽敊璇箣澶勶紝榪欏茍闈炴垜璋﹁櫄錛屼簨瀹炰笂鎴戝啓鏈枃鐨勭洰鐨勫氨鏄笇鏈涘湪鎸ㄧ爾鏉夸腑鎴愰暱錛佹柊浜烘垨璁哥湅涓嶆噦寰堝涓滆タ錛屽鏋滀綘鐪嬩笉鎳傦紝閭d箞灝變笉瑕侀殢渚胯啘鎷滐紝鍥犱負鐪嬩笉鎳傜殑鎴栬鍘熸湰灝辨槸閿欑殑錛岄珮鎵嬬湅瀹屽悗濡傛灉鏈枃鍐欏緱榪樺彲浠ワ紝閭d箞璇風暀涓嬪ソ璇勶紝浠ヤ緵鏂版墜鍙傝冩湰鏂囨槸鍚︽湁闃呰鏈枃鐨勫繀瑕侊紝濡傛灉瑙夊緱鏈枃瀹屽叏鏄瀮鍦撅紝閭d箞璇蜂笉瑕佸姘旓紝鎮ㄥ彲浠ヨ丹瑁稿湴錛岄湶楠ㄥ湴鎸囧嚭鏈枃鐨勯敊璇拰涓嶈凍錛岃鏈漢鍦ㄦ壒璇勪腑榪涙錛屼絾璇蜂笉瑕佽繘琛屼漢韜敾鍑伙紝璋㈣阿錛?/p>
鍑嗗宸ヤ綔
鐢變簬鏈枃娑夊強鍒頒氦鎹袱涓敤鎴瘋嚜瀹氫箟綾誨瀷鐨勫彉閲忥紝涓轟簡涓句緥鏂逛究錛屾湰鏂囧畾涔夊涓嬬殑Person綾?鍏朵腑鐪佺暐浜嗘嫹璐濇瀯閫犲嚱鏁扮殑閲嶅啓錛屽洜涓烘湰鏂囦笉鐢ㄥ埌瀹?:
涓轟簡鍚庢枃琛ㄨ堪鏂逛究錛岃繖閲屽啀瀹氫箟Person綾葷殑涓や釜瀵硅薄鍜屼袱涓寚閽堬紝瀹氫箟濡備笅錛?/p>
Person youngMan(18,” young man”);
Person oldMan(81,” old man”);
Person* pYoungMan = &youngMan;
Person* pOldMan = &oldMan;
鏈甯歌鐨勪氦鎹袱涓璞$殑鏂規硶:GeneralSwap
閫氬父錛屾垜浠負浜嗕氦鎹袱涓彉閲忛兘閲囧彇涓嬮潰鐨勬柟娉曟潵瀹炵幇錛屽畠闇瑕佷竴涓復鏃跺彉閲忥細
鏄劇劧浜轟漢閮界煡閬撹繖涓啓娉曪紝浣嗘槸鎴戜粛鐒惰寰楁湁蹇呰閲嶇偣鐢蟲槑鍑犵偣錛?銆佹敞鎰忓嚱鏁扮殑鍙傛暟鏄紩鐢?涔熷彲鎸囬拡)錛屼負浠涔堟垜灝變笉瑙i噴浜嗭紱2銆佽繖涓氦鎹㈠嚱鏁板熀鏈笂鏄渶綆鍗曘佹渶閫氱敤鐨勶紝綆鍗曞埌浜轟漢閮戒細鍐欙紝閫氱敤鍒板畠鍑犱箮鍙傜敤浜庝換浣曟暟鎹被鍨嬶細char , int , long , float, double絳夊悇縐嶇郴緇熻嚜瀹氫箟鏁板綾誨瀷(鏃犵鍙風殑錛屽甫絎﹀彿鐨?錛岀敤鎴瘋嚜瀹氫箟鏁版嵁綾誨瀷(闇瑕佹湁榛樿鏋勯犲嚱鏁幫紝鍚﹀垯璇彞T temp;浼氭姤閿?錛屼互鍙婂悇縐嶆寚閽?緋葷粺鑷畾涔夌被鍨嬬殑鎸囬拡錛屽拰鐢ㄦ埛鑷畾涔夌被鍨嬬殑鎸囬拡)銆傚綋鐒剁敤鎴瘋嚜瀹氫箟綾誨瀷涓鏋滃寘鍚簡鎸囬拡鏁版嵁鎴愬憳錛岄偅涔堥渶瑕侀噸杞借祴鍊艱繍綆楃錛屼簨瀹炰笂榪欐牱鐨勭敤鎴瘋嚜瀹氫箟綾伙紝浣犻兘搴旇鑷繁閲嶅啓璧嬪艱繍綆楃銆佹嫹璐濇瀯閫犲嚱鏁幫紝鍚﹀垯涓嶄絾涓嶈兘浣跨敤GeneralSwap錛屽叾浠栨秹鍙婂埌鎷瘋礉鍜岃祴鍊肩殑鎿嶄綔閮藉彲鑳藉鑷村嚭閿欙紒
鍒╃敤GeneralSwap浜ゆ崲涓や釜鐢ㄦ埛鑷畾涔夊璞?/strong>
涓嬮潰娣卞叆鎺㈣涓涓嬪叧浜庣敤鎴瘋嚜瀹氫箟瀵硅薄鐨勪氦鎹㈤棶棰橈細閽堝鍑嗗宸ヤ綔涓殑Person綾葷殑涓や釜瀵硅薄youngMan鍜宱ldMan璇彞GeneralSwap(youngMan,oldMan);鑳藉疄鐜頒粬浠殑浜ゆ崲銆傜煭鐭竴琛屼唬鐮佸氨鑳藉疄鐜板皢涓涓?8宀佺殑鑺卞灝戠敺璺熶竴涓?1宀佺殑鑰佸ご瀛愭帀鍖咃紝榪欏儚涓嶅儚鏄嶉瓟鏈晩錛屽懙鍛點傝娉ㄦ剰浜嗭紝璇ヤ氦鎹唬鐮佽櫧鐭紝浣嗘秹鍙婂埌榛樿鏋勯犲嚱鏁扮殑璋冪敤(GeneralSwap涓殑T temp;璇彞)鍜岃祴鍊艱繍綆楃閲嶈澆鍑芥暟鐨勮皟鐢?GeneralSwap涓殑涓変釜璧嬪艱鍙?銆?/p>
鎴栬鎮ㄥ緢灝戣繖涔堢敤鍚э紝浜嬪疄涓婂湪鎴戝啓鏈枃涔嬪墠錛屾垜閮芥病鐪熸浜ゆ崲榪囦袱涓嚜瀹氫箟鐨勫璞★紝閫氬父鎴戜滑閮戒笉鎰挎剰榪欎箞浜ゆ崲涓や釜鑷畾涔夊璞°傚師鍥犳槸鏁堢巼澶綆錛佹垨璁鎬綘瑕侀棶錛屼竾涓鏈夌殑搴旂敤灝辨槸闇瑕佷氦鎹袱涓嚜瀹氫箟鐨勫璞℃庝箞鍔烇紵濂藉姙錛岀敤鎸囬拡鍟婏紒瀵癸紝鎸囬拡鐨勫ソ澶勫氨鏄晥鐜囬珮錛屼負浠涔圕++姣攋ava鏁堢巼楂橈紝鍘熷洜涔嬩竴灝辨槸java鍙栨秷浜嗘寚閽堛備笅闈㈢殑絎竴琛屼唬鐮佸氨鏄氦鎹袱涓狿erson綾葷殑鎸囬拡錛?/p>
GeneralSwap(pYoungMan,pOldMan);
//GeneralSwap(*pYoungMan,* pOldMan); //鏁堢巼浣?/p>
涓轟粈涔堜嬌鐢ㄦ寚閽堝氨鏁堢巼楂樹簡鍛紵鍘熷洜鏄寚閽堝氨鏄湴鍧錛屽湴鍧灝辨槸鏁存暟錛屼簬鏄棶棰樼瓑浠蜂簬浜ゆ崲涓や釜鏁存暟錛屽洜姝ゅ畠涓嶈皟鐢ㄨ祴鍊艱繍綆楃閲嶈澆鍑芥暟錛佸彧瑕佷綘鍦ㄥ簲鐢ㄧ▼搴忎腑濮嬬粓閫氳繃鎸囧悜瀵硅薄鐨勬寚閽堟潵璁塊棶瀵硅薄錛岄偅涔堜氦鎹袱涓寚閽堝氨鑳借揪鍒頒氦鎹㈠璞$殑鐩殑銆傛敞鎰忚娉ㄩ噴鎺夌殑絎簩琛屼唬鐮侊紝瀹冩槸姝g‘鐨勶紝浣嗘槸瀹冨張鍥炲埌浜嗕氦鎹袱涓疄闄呭璞★紝鍏舵晥鐜囦綆錛屾渶濂戒笉瑕佽繖涔堢敤錛?/p>
瀵逛簬榪欎釜鏈甯歌銆佹渶綆鍗曠殑GeneralSwap鎴戦兘搴熻瘽浜嗕竴澶у爢錛岃屼笖榪樻壇鍑轟簡涓涓病澶氬皯鐢ㄧ殑鍏充簬鐢ㄦ埛鑷畾涔夊璞$殑浜ゆ崲闂錛岃繖瀹炲睘涓漢鎬濈淮鏁e皠錛岃鐮栧浠嫚鐙犲湴鎷嶃?/p>
鍦ㄨ繘琛屼笅涓涓柟娉曚箣鍓嶏紝鍐嶆寮鴻皟涓鐐癸紝榪欎釜鏂規硶鐨勭壒鐐規槸綆鍗曘侀氱敤錛?/strong>鍚庨潰鐨勬柟娉曢兘灝嗕笌涔嬪仛姣旇緝銆?/p>
鍒╃敤鍔犲噺娉曞疄鐜頒袱涓暟鐨勪氦鎹?/strong> 鍑犱箮浜轟漢閮界煡閬撹繕鍙互鍒╃敤鍔犲噺娉曟潵瀹炵幇涓や釜鏁扮殑浜ゆ崲錛屽叾浠g爜涔熷紓甯哥畝鍗曪細
void Add_Sub_Swap_1(T& a, T& b)
{
a = a+b;
b = a-b;
a = a-b;
}
Add_Sub_Swap_1鍙互鐢ㄤ簬浜ゆ崲涓や釜鏁存暟錛屼絾鐢變簬娑夊強鍔犲噺娉曪紝鍥犳鏈夋暟鎹孩鍑虹殑鍗遍櫓錛涗篃鍙互鐢ㄤ簬浜ゆ崲嫻偣鏁幫紝浣嗘槸鏈夊彲鑳界敱浜庤垗鍏ヨ宸鑷寸粨鏋滀笉鍑嗙‘銆?/p>
Add_Sub_Swap_1涓嶈兘鐢ㄤ簬浜ゆ崲涓や釜鐢ㄦ埛鑷畾涔夌殑瀵硅薄錛屼笅闈㈢殑璇彞緙栬瘧灝遍氳繃涓嶏紝緙栬瘧鍣ㄥ憡璇変綘Person綾繪病鏈夊畾涔塷perator +絳夌鍙鳳細
Add_Sub_Swap_1(youngMan,oldMan);//緙栬瘧閫氫笉榪囷紒
Add_Sub_Swap_1涓嶈兘鐢ㄤ簬浜ゆ崲涓や釜鎸囬拡錛岃鍙dd_Sub_Swap_1(pYoungMan,pOldMan);緙栬瘧鏃跺皢鎶ラ敊錛?span>error C2110: cannot add two pointers錛屾槸鐨勶紝涓や釜鎸囬拡涓嶈兘鐩存帴鍋氬姞娉曡繍綆?鍑忔硶鏄彲浠ョ殑)銆傞偅涔堟槸涓嶆槸灝變笉鑳藉埄鐢ㄥ姞鍑忔硶瀹炵幇涓や釜鎸囬拡鐨勪氦鎹㈠憿錛熺瓟妗堟槸錛?#8220;鍙互錛?#8221;錛屾帴涓嬫潵鎴戝皢闃愯堪濡備綍瀹炵幇銆?/p>
鍒╃敤鍔犲噺娉曚氦鎹袱涓寚閽?/strong>
Add_Sub_Swap_1涓嶈兘鐢ㄤ簬浜ゆ崲涓や釜鎸囬拡錛屽墠闈㈡垜璇村彲浠ョ敤鍔犲噺娉曟潵瀹炵幇涓や釜鎸囬拡鐨勪氦鎹紝榪欐槸鏈夋牴鎹殑錛氭寚閽堜粛鐒舵槸鍙橀噺錛屽彧涓嶈繃瀹冩槸瀛樺偍鏅氬彉閲忕殑鍦板潃鐨勫彉閲忋傚彧瑕佹垜浠妸鎸囬拡“鐪嬩綔”鍙橀噺錛岄偅涔堝氨鑳藉疄鐜板姞娉曘傞偅涔堝浣曟妸鎸囬拡“鐪嬩綔”鍙橀噺鍛紵絳旀鏄細“閫氳繃寮哄埗綾誨瀷杞崲”錛佹寚閽堣〃紺哄彉閲忕殑鍦板潃錛屽湪32浣嶅鉤鍙頒笂瀹冩槸涓涓棤絎﹀彿鐨勬暣鏁幫紝鍥犳鍙互灝嗘寚閽堝己鍒惰漿鎹負鏃犵鍙風被鍨嬬殑鏁存暟銆傛垜瀵逛笂闈㈢殑Add_Sub_Swap_1榪涜浜嗘敼榪涳細
鍒╃敤Add_Sub_Swap_2鏃㈠彲浠ヤ氦鎹袱涓櫘閫氱殑鏁存暟銆佹誕鐐規暟鍚屾椂瀹冨彲浠ヤ氦鎹袱涓換鎰忕被鍨嬬殑鎸囬拡(鍖呭惈緋葷粺棰勫畾涔夌被鍨嬪拰鐢ㄦ埛鑷畾涔夌被鍨嬬殑鎸囬拡錛屽叾瀹炴湰璐ㄤ笂鎵鏈夋寚閽堥兘灞炰簬鍚屼竴縐嶇被鍨?32浣嶆棤絎﹀彿鏁存暟綾誨瀷)銆備笉淇℃偍璇曡瘯Add_Sub_Swap_2(pYoungMan,pOldMan);瀹冭兘寰楀埌姝g‘絳旀銆?/p>
铏界劧Add_Sub_Swap_2瑙e喅浜咥dd_Sub_Swap_1鏃犳硶浜ゆ崲涓や釜鎸囬拡鐨勯棶棰橈紝浣嗘槸瀹冧粛鐒舵棤娉曚氦鎹袱涓敤鎴瘋嚜瀹氫箟綾誨瀷鐨勫彉閲?/strong>錛屽師鍥犳槸鐢ㄦ埛鑷畾涔夌被鍨嬫病鏈夊姞鍑忔硶榪愮畻銆傜湅鏉ヨ鎯崇敤鍔犲噺娉曞疄鐜頒袱涓敤鎴峰畾涔夌被鍨嬬殑浜ゆ崲鏄笉鍙兘鐨勪簡(闄ら潪鐢ㄦ埛鑷畾涔夌殑operator+鍜宱perator-鑳芥弧瓚充氦鎹袱涓璞$殑鐩殑錛岃繖寰堥毦錛岄櫎闈炴槸闈炲父綆鍗曠殑鐢ㄦ埛鑷畾涔夌被鍨嬶紝姣斿浣犱笉浣跨敤緋葷粺綾誨瀷int闈炶瀹氫箟涓涓狹yInt綾?銆?/p>
鍒╃敤寮傛垨瀹炵幇涓や釜鏁存暟鐨勪氦鎹?/strong> 鍚屾牱鍦幫紝鍑犱箮浜轟漢閮界煡閬撳埄鐢ㄥ紓鎴栨潵浜ゆ崲涓や釜鏁幫紝鍏跺疄鐜頒篃闈炲父綆鍗曪細
void Xor_Swap_1(T& a,T& b)
{
a = a^b;
b = a^b;
a = a^b;
}
涓婇潰鐨勫嚱鏁扮殑瀹炵敤鎬?strong>闈炲父鏈夐檺錛屽畠鍙兘浜ゆ崲涓や釜鏁存暟(鍖呭惈char,int,long)錛岃鎯充氦鎹袱涓誕鐐規暟鏄笉琛岀殑錛屽洜涓烘誕鐐規暟涓嶈兘鍙備笌浣嶈繍綆楋紝瑕佹兂浜ゆ崲涓や釜鎸囬拡涔熸槸涓嶈鐨勶紝緙栬瘧鍣ㄤ笉鍏佽浣犳妸涓や釜鎸囬拡鎷挎潵鍋氫綅榪愮畻錛岃鎯充氦鎹袱涓敤鎴瘋嚜瀹氫箟瀵硅薄涔熸槸涓嶈鐨勶紝鍥犱負瀹冧粛鐒朵笉鑳藉弬涓庝綅榪愮畻銆傞偅涔堟槸涓嶆槸鍒╃敤寮傛垨浜ゆ崲涓や釜鍙橀噺灝辨病娉曠敤浜庢誕鐐規暟銆佹寚閽堝拰鐢ㄦ埛鑷畾涔夌殑瀵硅薄浜嗗憿錛熺瓟妗堟槸“鑳?#8221;錛佸悗闈㈠嚑鑺傛垜灝嗛槓榪拌繖浜涢棶棰樸?/p>
鍒╃敤寮傛垨瀹炵幇涓や釜float鍜屾寚閽堢殑浜ゆ崲
鍓嶉潰鐨刋or_Swap_1鏃犳硶瀹炵幇涓や釜嫻偣鏁板拰鎸囬拡鐨勪氦鎹紝鍏跺師鍥犳槸嫻偣鏁板拰鎸囬拡鍧囦笉鐩存帴鏀寔浣嶈繍綆椼傞偅涔堝浣曟墠鑳藉埄鐢ㄥ紓鎴栨潵浜ゆ崲涓や釜嫻偣鏁板拰鎸囬拡鍛紵鏂規硶浠嶇劧鏄?#8220;寮哄埗綾誨瀷杞崲”錛佸洜涓烘誕鐐規暟鍦ㄥ唴瀛樹腑浠嶇劧鏄敤涓涓蹭簩榪涘埗bit鏉ヨ〃紺虹殑鍢涳紝鍙鎶婃誕鐐規暟鐪嬩綔(寮哄埗綾誨瀷杞崲)浜岃繘鍒禸it鏋勬垚鐨?strong>鏁存暟錛岄偅涔堝氨鑳借繘琛屼綅榪愮畻浜嗭紝鑷充簬鎸囬拡鍢涳紝澶勭悊鏂規硶瀹屽叏鐩稿悓銆傚叿浣撳浣曞仛鍛紝鍏跺疄鐜板ぇ姒傛槸榪欐牱鐨勶細
鍒╃敤榪欎釜鍑芥暟鍙互浜ゆ崲涓や釜float綾誨瀷鐨勫彉閲忥紝涔熷彲浠ヤ氦鎹換鎰忕被鍨嬬殑鎸囬拡錛侀潪甯稿煎緱娉ㄦ剰鐨勬槸錛氱敤瀹冧氦鎹袱涓猟ouble綾誨瀷鏁版嵁鎴栬呬袱涓狿erson綾葷殑瀵硅薄(youngMan,oldMan)鍧囪兘緙栬瘧閫氳繃錛屼絾鏄叾緇撴灉鍗存槸閿欑殑銆傝嚦浜庝負浠涔堬紝浠ュ強濡備綍瑙e喅錛岃繖灝嗘槸鎴戜笅涓鑺傝闃愯堪鐨勫唴瀹廣?/strong>
鍒╃敤寮傛垨瀹炵幇涓や釜double綾誨瀷鍙橀噺鍜岀敤鎴瘋嚜瀹氫箟鍙橀噺鐨勪氦鎹?/strong>
Xor_Swap_2瑙e喅浜嗗埄鐢ㄥ紓鎴栦笉鑳戒氦鎹袱涓猣loat鏁版嵁鍜屾寚閽堢殑闂錛岀劧鑰屽畠鍗翠笉鑳芥紜湴浜ゆ崲涓や釜double鏁版嵁鍜屼袱涓狿erson綾誨璞°傝繖鏄負浠涔堝憿錛熷師鍥犳槸鍑芥暟鍐呴儴鏄妸鍙傛暟寮哄埗綾誨瀷杞崲鎴恥nsigned綾誨瀷鐨勶紝鑰宻izeof(float)鍜宻izeof(pointor)鐨勫奸兘絳変簬sizeof(unsigned)錛屼絾鏄痵izeof(double)鍗翠笉絳変簬sizeof(unsigned)錛屼篃灝辨槸璇存妸double寮哄埗杞崲鎴恥nsigned綾誨瀷鏃訛紝鍙戠敓浜?#8220;浣嶆埅鏂?#8221;(鍦ㄦ蹇墊槸鍖哄埆涓庢暟鎹埅鏂?錛岄偅涔堝緱鍒扮殑緇撴灉鑲畾灝變笉瀵逛簡銆傝嚦浜庢棤娉曚氦鎹袱涓狿erson綾誨璞★紝鍏跺師鍥犱篃鐩稿悓銆?/p>
榪欓噷鎴戣娣卞叆鍒嗘瀽涓涓嬪己鍒剁被鍨嬭漿鎹㈡槸濡備綍鍙戠敓浣嶆埅鏂殑錛岄鍏堢湅鐪嬩互涓嬫祴璇曠殑杈撳嚭緇撴灉錛屾敞鎰忎唬鐮佷腑鐨勬敞閲婏紝涓轟簡鑺傜害綃囧箙錛屾垜鎶婂煎緱娉ㄦ剰鐨勫湴鏂歸兘鏀懼湪娉ㄩ噴涓簡錛?/p>
Double a = 1.0,b=2.0;
Xor_Swap_2(a,b);//浜ゆ崲涓や釜double鏁版嵁
Cout<<a<<b;//杈撳嚭浠嶇劧鏄?.0鍜?.0,a,b鐨勫煎茍鏈敼鍙?/p>
Xor_Swap_2(youngMan,oldMan);//浜ゆ崲涓や釜鐢ㄦ埛鑷畾涔夊璞?/p>
youngMan.PrintSelf();//杈撳嚭young man:81
oldMan.PrintSelf();//杈撳嚭old man:18
鍙互鐪嬪嚭涓や釜double鏁版嵁騫舵病琚氦鎹紝鑰屼袱涓?/strong>Person瀵硅薄鍦ㄤ氦鎹箣鍚庡彂鐢熶簡鎬紓鐜拌薄錛氫駭鐢熶簡81宀佺殑騫磋交浜哄拰18宀佺殑鑰佸勾浜猴紒榪欎竴鐐規濂借鏄庡己鍒剁被鍨嬭漿鎹㈡椂鍙戠敓浜嗕綅鎴柇錛岀敱浜嶱erson綾葷殑絎竴涓暟鎹垚鍛榤_Age姝eソ鏄痠nt鍨嬶紝鍦╔or_Swap_2鍐呴儴鍋氬己鍒剁被鍨嬭漿鎹㈡椂姝eソ鍙栧緱浜嗕袱涓璞$殑m_Age鎴愬憳錛屼簬鏄嚭鐜頒簡涓や釜瀵硅薄琚儴鍒嗕氦鎹㈢殑鎯呭喌錛岄偅涔堝張濡備綍瑙i噴涓や釜double鏁版嵁娌℃湁鍙樻硶鍛紵浜嬪疄涓婁袱涓猟ouble鏁版嵁浠嶇劧鍙戠敓浜嗛儴鍒嗕氦鎹紝鍥犱負榪欓噷鐨勪袱涓猟ouble鏁?a,b)鐨勫墠4涓瓧鑺傛濂界浉鍚岋紝鍥犳鐪嬩笉鍑洪儴鍒嗕氦鎹€?/p>
鏃㈢劧鎴戜滑鐭ラ亾浜哫or_Swap_2涓轟粈涔堜笉鑳界敤浜庝氦鎹袱涓猟ouble綾誨瀷鐨勬暟鎹拰涓や釜鐢ㄦ埛鑷畾涔夌殑鏁版嵁錛岄偅涔堝氨鏈夊姙娉曞瀹冭繘琛屾敼榪涖傚叿浣撴敼榪涚殑鎬濇兂灝辨槸鎶婂弬鏁版寜鐓т竴涓猙yte涓涓猙yte鍦板垎鍒紓鎴栵紝鎸夌収榪欎釜鎬濊礬鎴戝疄鐜頒簡濡備笅鐨勫嚱鏁幫細
void Xor_Swap_3(T& a,T& b)
{
int size = sizeof(T);
for (int i = 0;i<size;i++)
{
*((unsigned char*)(&a)+i) = (*((unsigned char*)(&a)+i)) ^ (*((unsigned char*)(&b)+i));
*((unsigned char*)(&b)+i) = (*((unsigned char*)(&a)+i)) ^ (*((unsigned char*)(&b)+i));
*((unsigned char*)(&a)+i) = (*((unsigned char*)(&a)+i)) ^ (*((unsigned char*)(&b)+i));
}
}
榪欎釜鐗堟湰鐨勫嚱鏁頒笉浠呰兘浜ゆ崲涓や釜鏁存暟銆佷換浣曟寚閽堛乫loat鏁板拰double鏁幫紝鏇寸墰閫肩殑鏄畠鑳戒氦鎹袱涓敤鎴峰畾涔夌被鍨嬬殑鍙橀噺錛?/strong>浜嬪疄涓婂畠鍩烘湰涓婃槸鍦ㄥ唴瀛樹竴綰т笂鎿嶄綔鏁版嵁錛岃屼換浣曠被鍨嬬殑鏁版嵁瀵硅薄鏈緇堥兘琛ㄧ幇涓哄唴瀛樺璞°傝繖鍏跺疄灝辨槸閫氳繃鍐呭瓨鎷瘋礉瀹炵幇涓や釜瀵硅薄鐨勪氦鎹㈢殑涓涓増鏈惂錛屽綋鐒惰繕鏈夊埄鐢╩emcpy絳夋墜孌佃繘琛屽唴瀛樻嫹璐濇潵瀹炵幇涓や釜鍙橀噺鐨勪氦鎹㈢殑錛岃繖閲屾垜灝變笉璧樿堪浜嗐?/p>
緇撴潫璇?/strong> 鏈瘒鍒版鍐欏畬浜嗭紝鏈夌涓嶅ソ鐨勬劅瑙夛紝鍥犱負鏂囦腑澶ч噺浣跨敤“寮哄埗綾誨瀷杞崲”鑰岃繖涓笢瑗挎槸C++涓鏄撳嚭閿欑殑鍦版柟錛岃屾垜鍐嶅啓鏈枃鏃訛紝騫舵病鏈夊幓澶嶄範鍏充簬寮哄埗綾誨瀷杞崲鐨勭浉鍏崇煡璇嗭紝鍥犳鎷呭績寰堝鍦版柟鏈夋綔鍦ㄧ殑鍑洪敊鍙兘錛岃繕璇峰悇浣嶇爾瀹舵寚姝o紒
]]>
Sizeof鐨勪綔鐢ㄩ潪甯哥畝鍗曪細姹傚璞℃垨鑰呯被鍨嬬殑澶у皬銆傜劧鑰宻izeof鍙堥潪甯稿鏉傦紝瀹冩秹鍙婂埌寰堝鐗規畩鎯呭喌錛屾湰綃囨妸榪欎簺鎯呭喌鍒嗛棬鍒被錛屾葷粨鍑轟簡sizeof鐨?0涓壒鎬э細
(0)sizeof鏄繍綆楃錛屼笉鏄嚱鏁幫紱
(1)sizeof涓嶈兘姹傚緱void綾誨瀷鐨勯暱搴︼紱
(2)sizeof鑳芥眰寰梫oid綾誨瀷鐨勬寚閽堢殑闀垮害錛?/p>
(3)sizeof鑳芥眰寰楅潤鎬佸垎閰嶅唴瀛樼殑鏁扮粍鐨勯暱搴?
(4)sizeof涓嶈兘姹傚緱鍔ㄦ佸垎閰嶇殑鍐呭瓨鐨勫ぇ灝?
(5)sizeof涓嶈兘瀵逛笉瀹屾暣鐨勬暟緇勬眰闀垮害錛?/p>
(6)褰撹〃杈懼紡浣滀負sizeof鐨勬搷浣滄暟鏃訛紝瀹冭繑鍥炶〃杈懼紡鐨勮綆楃粨鏋滅殑綾誨瀷澶у皬錛屼絾鏄畠涓嶅琛ㄨ揪寮忔眰鍊鹼紒
(7)sizeof鍙互瀵瑰嚱鏁拌皟鐢ㄦ眰澶у皬錛屽茍涓旀眰寰楃殑澶у皬絳変簬榪斿洖綾誨瀷鐨勫ぇ灝忥紝浣嗘槸涓嶆墽琛屽嚱鏁頒綋錛?/p>
(8)sizeof姹傚緱鐨勭粨鏋勪綋(鍙婂叾瀵硅薄)鐨勫ぇ灝忓茍涓嶇瓑浜庡悇涓暟鎹垚鍛樺璞$殑澶у皬涔嬪拰錛?/p>
(9)sizeof涓嶈兘鐢ㄤ簬姹傜粨鏋勪綋鐨勪綅鍩熸垚鍛樼殑澶у皬錛屼絾鏄彲浠ユ眰寰楀寘鍚綅鍩熸垚鍛樼殑緇撴瀯浣撶殑澶у皬錛?strong>
姒傝堪錛?/strong>
Sizeof鏄疌/C++涓殑鍏抽敭瀛?/strong>錛屽畠鏄竴涓?strong>榪愮畻絎?/strong>錛屽叾浣滅敤鏄彇寰椾竴涓璞?鏁版嵁綾誨瀷鎴栬?strong>鏁版嵁瀵硅薄)鐨勯暱搴?鍗沖崰鐢ㄥ唴瀛樼殑澶у皬錛?strong>浠?/strong>byte涓哄崟浣?/strong>)銆傚叾涓被鍨嬪寘鍚熀鏈暟鎹被鍨?涓嶅寘鎷瑅oid)銆佺敤鎴瘋嚜瀹氫箟綾誨瀷(緇撴瀯浣撱佺被)銆?strong>鍑芥暟綾誨瀷銆傛暟鎹璞℃槸鎸囩敤鍓嶉潰鎻愬埌鐨勭被鍨嬪畾涔夌殑鏅氬彉閲忓拰鎸囬拡鍙橀噺(鍖呭惈void鎸囬拡)銆備笉鍚岀被鍨嬬殑鏁版嵁鐨勫ぇ灝忓湪涓嶅悓鐨勫鉤鍙頒笅鏈夋墍鍖哄埆錛屼絾鏄痗鏍囧噯瑙勫畾鎵鏈夌紪璇戝鉤鍙伴兘搴旇淇濊瘉sizeof(char)絳変簬1銆傚叧浜巗izeof鐨勬洿澶氭榪頒綘鍙互鍦╩sdn鎬昏緭鍏izeof榪涜鏌ヨ銆?/p>
鐪嬩簡涓婇潰榪欎簺錛屾垨璁鎬綘鐪嬩簡娌℃湁澶氬皯鎰熻銆傛病鍏崇郴錛屼笅闈㈡垜灝嗚緇嗗垪鍑簊izeof鐨勮澶氱壒鎬э紝榪欎簺鐗規ф槸閫犳垚sizeof鏄竴涓緝鍒侀捇鐨勫叧閿瓧鐨勫師鍥狅細
鍗佸ぇ鐗規э細
鐗規?錛歴izeof鏄繍綆楃錛屼笉鏄嚱鏁?/strong>
榪欎釜鐗規ф槸sizeof鐨勬渶鍩烘湰鐗規э紝鍚庨潰鐨勫緢澶氱壒鎬ч兘鏄彈鍒拌繖涓壒鎬х殑褰卞搷錛屾鍥犱負sizeof涓嶆槸鍑芥暟錛屽洜姝ゆ垜浠笉鎶婂畠鎵瑕佹眰寰楅暱搴︾殑瀵硅薄鍙仛鍙傛暟錛屾垜鏈漢涔犳儻涓婂彨鍋氭搷浣滄暟(榪欎笉涓ヨ皚錛屼絾鏄湁鍔╀簬鎴戣浣弒izeof鏄釜鎿嶄綔絎?銆?/p>
鐗規?錛歴izeof涓嶈兘姹傚緱void綾誨瀷鐨勯暱搴?/strong>
鏄殑錛屼綘涓嶈兘鐢╯izeof(void)錛岃繖灝嗗鑷寸紪璇戦敊璇細illegal sizeof operand銆備簨瀹炰笂浣犳牴鏈氨鏃犳硶澹版槑void綾誨瀷鐨勫彉閲忥紝涓嶄俊浣犲氨璇曡瘯void a;榪欐牱鐨勮鍙ワ紝緙栬瘧鍣ㄥ悓鏍蜂細鎶ラ敊錛歩llegal use of type 'void'銆傛垨璁鎬綘瑕侀棶涓轟粈涔堬紝寰堝ソ錛屽涓滆タ涓嶈兘鍙煡鍏剁劧錛岃繕瑕佺煡鍏舵墍浠ョ劧銆傛垜浠煡閬撳0鏄庡彉閲忕殑涓涓噸瑕佷綔鐢ㄥ氨鏄憡璇夌紪璇戝櫒璇ュ彉閲忛渶瑕佸灝戝瓨鍌ㄧ┖闂淬傜劧鑰岋紝void鏄?#8220;絀虹被鍨?#8221;錛屼粈涔堟槸絀虹被鍨嬪憿錛屼綘鍙互鐞嗚В鎴愪笉鐭ラ亾瀛樺偍絀洪棿澶у皬鐨勭被鍨嬨傛棦鐒剁紪璇戝櫒鏃犳硶紜畾void綾誨瀷鐨勫彉閲忕殑瀛樺偍澶у皬錛岄偅涔堝畠鑷劧涓嶈浣犲0鏄庤繖鏍風殑鍙橀噺銆傚綋鐒朵簡錛屽0鏄巚oid綾誨瀷鐨勬寚閽堟槸鍙互鐨勶紒榪欏氨鏄壒鎬?鐨勫唴瀹廣?/p>
鐗規?錛歴izeof鑳芥眰寰梫oid綾誨瀷鐨勬寚閽堢殑闀垮害
鍦ㄧ壒鎬?涓榪囷紝鍙互鐢蟲槑void綾誨瀷鐨勬寚閽堬紝涔熷氨鏄緙栬瘧鍣ㄥ彲浠ョ‘瀹歷oid綾誨瀷鐨勬寚閽堟墍鍗犵敤鐨勫瓨鍌ㄧ┖闂淬備簨瀹炰笂紜疄濡傛錛岀洰鍓嶏紝鍑犱箮鎵鏈夊鉤鍙頒笂鐨勬墍鏈夌増鏈殑緙栬瘧鍣ㄩ兘鎶婃寚閽堢殑澶у皬鐪嬪仛4byte錛屼笉淇′綘璇曡瘯sizeof(int*);sizeof(void*);sizeof(double*)錛泂izeof(Person*)錛涚瓑絳夛紝瀹冧滑閮界瓑浜?錛佷負浠涔堝憿錛熼棶寰楀ソ錛屾垜灝嗗敖鍏ㄥ姏瀵規浣滃嚭瑙i噴錛氬叾瀹?strong>鎸囬拡涔熸槸鍙橀噺錛屽彧涓嶈繃榪欎釜鍙橀噺寰堢壒孌婏紝瀹冩槸瀛樻斁鍏朵粬鍙橀噺鐨勫湴鍧鐨勫彉閲?/strong>銆傚張鐢變簬鐩墠32浣嶈綆楁満騫沖彴涓婄殑紼嬪簭孌電殑瀵誨潃鑼冨洿閮芥槸4GB錛屽鍧鐨勬渶灝忓崟鍏冩槸byte錛?GB絳変簬232Byte錛岃繖涔堝鐨勫唴瀛樺叾鍦板潃濡傛灉緙栫爜鍛紝鍙渶瑕佺敤32涓猙it灝辮浜嗭紝鑰?2bit = 32/8 = 4byte錛屼篃灝辨槸璇村彧闇瑕?byte灝辮兘瀛樺偍榪欎簺鍐呭瓨鐨勫湴鍧浜嗐傚洜姝ゅ浠諱綍綾誨瀷鐨勬寚閽堝彉閲忚繘琛宻izeof榪愮畻鍏剁粨鏋滃氨鏄?錛?/p>
鐗規?錛歴izeof鑳芥眰寰楅潤鎬佸垎閰嶅唴瀛樼殑鏁扮粍鐨勯暱搴? Int a[10];int n = sizeof(a);鍋囪sizeof(int)絳変簬4錛屽垯n= 10*4=40錛涚壒鍒娉ㄦ剰錛?span>char
ch[]=”abc”;sizeof(ch);緇撴灉涓?錛屾敞鎰忓瓧絎︿覆鏁扮粍鏈熬鏈?#8217;\0’錛侀氬父鎴戜滑鍙互鍒╃敤sizeof鏉ヨ綆楁暟緇勪腑鍖呭惈鐨勫厓绱犱釜鏁幫紝鍏跺仛娉曟槸錛歩nt n = sizeof(a)/sizeof(a[0]); 闈炲父闇瑕佹敞鎰忕殑鏄?/strong>瀵瑰嚱鏁扮殑褰㈠弬鏁扮粍浣跨敤sizeof鐨勬儏鍐點備婦渚嬫潵璇達紝鍋囪鏈夊涓嬬殑鍑芥暟錛?/p>
void fun(int array[10]) { int n = sizeof(array); } 浣犱細瑙夊緱鍦╢un鍐咃紝n鐨勫間負澶氬皯鍛紵濡傛灉浣犲洖絳?0鐨勮瘽錛岄偅涔堟垜寰堥仐鎲劇殑鍛婅瘔浣狅紝浣犲張閿欎簡銆傝繖閲宯絳変簬4錛屼簨瀹炰笂錛屼笉綆″艦鍙傛槸int鐨勫瀷鏁扮粍錛岃繕鏄痜loat鍨嬫暟緇勶紝鎴栬呭叾浠栦換浣曠敤鎴瘋嚜瀹氫箟綾誨瀷鐨勬暟緇勶紝涔熶笉綆℃暟緇勫寘鍚灝戜釜鍏冪礌錛岃繖閲岀殑n閮芥槸4錛佷負浠涔堝憿錛?strong>鍘熷洜鏄湪鍑芥暟鍙傛暟浼犻掓椂錛屾暟緇勮杞寲鎴愭寚閽堜簡錛屾垨璁鎬綘瑕侀棶涓轟粈涔堣杞寲鎴愭寚閽堬紝鍘熷洜鍙互鍦ㄥ緢澶氫功涓婃壘鍒幫紝鎴戠畝鍗曡涓涓嬶細鍋囧鐩存帴浼犻掓暣涓暟緇勭殑璇濓紝閭d箞蹇呯劧娑夊強鍒版暟緇勫厓绱犵殑鎷瘋礉 鐗規?錛歴izeof涓嶈兘姹傚緱鍔ㄦ佸垎閰嶇殑鍐呭瓨鐨勫ぇ灝? 鍋囧鏈夊涓嬭鍙ワ細int*
a = new int[10];int n = sizeof(a);閭d箞n鐨勫兼槸澶氬皯鍛紵鏄?0鍚楋紵絳旀鏄惁瀹氱殑錛佸叾瀹瀗絳変簬4錛屽洜涓篴鏄寚閽堬紝鍦ㄧ壒鎬?涓榪囷細鍦?2浣嶅鉤鍙頒笅錛屾墍鏈夋寚閽堢殑澶у皬閮芥槸4byte錛佸垏璁幫紝榪欓噷鐨刟涓庣壒鎬?涓殑a騫朵笉涓鏍鳳紒寰堝浜?鐢氳嚦涓浜涜佸笀)閮借涓烘暟緇勫悕灝辨槸鎸囬拡錛屽叾瀹炰笉鐒訛紝浜岃呮湁寰堝鍖哄埆鐨勶紝瑕佺煡璇︽儏錛岃鐪嬨奵涓撳緙栫▼銆嬨傞氳繃鐗規?鍜岀壒鎬?錛屾垜浠湅鍒頒簡鏁扮粍鍜屾寚閽堟湁鐫鍗冧笣涓囩紩鐨勫叧緋伙紝榪欎簺鍏崇郴涔熸槸瀵艱嚧紼嬪簭娼滃湪閿欒鐨勪竴澶у洜绱狅紝鍏充簬鎸囬拡涓庢暟緇勭殑鍏崇郴闂鎴戝皢鍦ㄣ?strong>C/C++ 鐗規?鎸囧嚭sizeof鑳芥眰闈欐佸垎閰嶇殑鏁扮粍鐨勫ぇ灝忥紝鑰岀壒鎬?璇存槑sizeof涓嶈兘姹傜殑鍔ㄦ佸垎閰嶇殑鍐呭瓨鐨勫ぇ灝忋備簬鏄湁浜鴻涓簊izeof鏄紪璇戞椂榪涜姹傚肩殑錛屽茍緇欏嚭鐞嗙敱錛氳鍙nt array[sizeof(int)*10];鑳界紪璇戦氳繃錛岃屽緢澶氫功涓婇兘璇磋繃鏁扮粍澶у皬鏄紪璇戞椂灝辯‘瀹氫笅鏉ョ殑錛屾棦鐒跺墠闈㈢殑璇彞鑳界紪璇戦氳繃錛屾墍浠ヨ涓簊izeof鏄紪璇戞椂榪涜姹傚肩殑銆傜粡榪囪繘涓姝ユ祴璇曟垜鍙戠幇榪欎釜緇撹鏈変簺姝︽柇錛佽嚦灝戞槸鏈変簺涓嶄弗璋紒鍥犱負鍦ㄥ疄鐜頒簡c99鏍囧噯鐨勭紪璇戝櫒(濡侱EV C++)涓彲浠ュ畾涔夊姩鎬佹暟緇勶紝鍗籌細璇彞錛歩nt num;cin>>num; int arrary[num];鏄鐨?娉ㄦ剰鍦╲c6.0涓槸閿欑殑)銆傚洜姝ゆ垜灝卞湪DEV C++涓鍒氭墠鐨刟rray鍒╃敤璇彞int n
=sizeof(array);cout<<n<<endl鏉ユ眰澶у皬錛岀粨鏋滅紪璇戦氳繃錛岃繍琛屾椂杈撳叆num鐨勫?0涔嬪悗錛岃緭鍑簄絳変簬40錛佸湪榪欓噷寰堟槑鏄緉um鐨勫兼槸榪愯鏃舵墠杈撳叆鐨勶紝鍥犳sizeof涓嶅彲鑳藉湪緙栬瘧鏃跺氨姹傚緱array鐨勫ぇ灝忥紒榪欐牱涓鏉izeof鍙堝彉鎴愭槸榪愯鏃舵眰鍊肩殑浜嗐?/p>
閭d箞鍒板簳sizeof鏄紪璇戞椂姹傚艱繕鏄繍琛屾椂姹傚煎憿錛熸渶寮鍒漜鏍囧噯瑙勫畾sizeof鍙兘緙栬瘧鏃舵眰鍊鹼紝鍚庢潵c99鍙堣ˉ鍏呰瀹歴izeof鍙互榪愯鏃舵眰鍊箋備絾鍊煎緱娉ㄦ剰鐨勬槸錛屽嵆渚挎槸鍦ㄥ疄鐜頒簡c99鏍囧噯鐨凞EV C++涓粛鐒朵笉鑳界敤sizeof姹傚緱鍔ㄦ佸垎閰嶇殑鍐呭瓨鐨勫ぇ灝忥紒 鐗規?錛歴izeof涓嶈兘瀵逛笉瀹屾暣鐨勬暟緇勬眰闀垮害錛?/strong> 鍦ㄩ槓榪拌鐗規т箣鍓嶏紝鎴戜滑鍋囪鏈変袱涓簮鏂囦歡錛歠ile1.cpp鍜宖ile2.cpp錛屽叾涓璮ile1.cpp涓湁濡備笅鐨勫畾涔夛細 int arrayA[10] = {1,2,3,4,5,6,7,8,9,10}; int arrayB[10] = {11,12,13,14,15,16,17,18,19,20}; file2.cpp鍖呭惈濡備笅鍑犱釜璇彞錛?/p>
extern
arrayA[]; extern
arrayB[10]; cout<<sizeof(arrayA)<<endl; //緙栬瘧鍑洪敊錛侊紒 cout<<sizeof(arrayB)<<endl; 鍦╢ile2.cpp涓涓夋潯璇彞緙栬瘧鍑洪敊錛岃岀鏉¤鍙ユ紜紝騫朵笖鑳借緭鍑?0錛佷負浠涔堝憿錛熷師鍥犲氨鏄痵izeof(arrayA)璇曞浘姹備笉瀹屾暣鏁扮粍鐨勫ぇ灝忋傝繖閲岀殑涓嶅畬鏁寸殑鏁扮粍鏄寚鏁扮粍澶у皬娌℃湁紜畾鐨勬暟緇勶紒sizeof榪愮畻絎︾殑鍔熻兘灝辨槸姹傛煇縐嶅璞$殑澶у皬錛岀劧鑰屽0鏄庯細extern int arrayA[]鍙槸鍛婅瘔緙栬瘧鍣╝rrayA鏄竴涓暣鍨嬫暟緇勶紝浣嗘槸騫舵病鍛婅瘔緙栬瘧鍣ㄥ畠鍖呭惈澶氬皯涓厓绱狅紝鍥犳瀵筬ile2.cpp涓殑sizeof鏉ヨ瀹冩棤娉曟眰鍑篴rrayA鐨勫ぇ灝忥紝鎵浠ョ紪璇戝櫒騫茶剢涓嶈浣犻氳繃緙栬瘧銆?/p>
閭d負浠涔坰izeof(arrayB)鍙堝彲浠ュ緱鍒癮rraryB鐨勫ぇ灝忓憿?鍏抽敭灝卞湪浜庡湪file2.cpp涓叾澹版槑鏃朵嬌鐢?span>extern
int arrayB[10]鏄庣‘鍦板憡璇夌紪璇戝櫒arrayB鏄竴涓寘鍚?0涓厓绱犵殑鏁村瀷鏁扮粍錛屽洜姝ゅぇ灝忔槸紜畾鐨勩?/p>
鍒版鏈壒鎬ц瑙e樊涓嶅瑕佺粨鏉熶簡銆傚叾瀹炴湰闂榪樿兘寮曠敵鍑?strong>榪炴帴鍜岀紪璇?/strong>絳夌煡璇嗙偣錛屼絾鏄洰鍓嶆垜鏆傛椂榪樻病鑷俊瀵硅繖涓や釜鐭ヨ瘑鐐硅繘琛岃緇嗙殑錛屽交搴曠殑璁茶В錛屽洜姝や笉渚垮湪姝ょ彮闂ㄥ紕鏂э紝涓嶄箙鐨勫皢鏉ユ垜浼氬湪鏈郴鍒椾腑鍔犱笂鐩稿叧闂鐨勯槓榪般?/p>
鐗規?錛氬綋琛ㄨ揪寮忎綔涓簊izeof鐨勬搷浣滄暟鏃訛紝瀹冭繑鍥炶〃杈懼紡鐨勮綆楃粨鏋滅殑綾誨瀷澶у皬錛屼絾鏄畠涓嶅琛ㄨ揪寮忔眰鍊鹼紒 涓轟簡璇存槑榪欎釜闂錛屾垜浠潵鐪嬪涓嬬殑紼嬪簭璇彞錛?/p>
char ch = 1; int num=1; int n1 =
sizeof(ch+num); int n2 = sizeof(ch =
ch+num); 鍋囪char鍗犵敤1byte錛宨nt鍗犵敤4byte錛岄偅涔堟墽琛屼笂闈㈢殑紼嬪簭涔嬪悗錛宯1錛宯2錛宑h鐨勫兼槸澶氬皯鍛紵鎴戠浉淇℃湁涓嶅皯浜轟細璁や負n1涓巒2鐩哥瓑錛屼篃鏈変笉灝戜漢璁や負ch絳変簬2錛屼簨瀹炶繖浜涗漢閮介敊浜嗐備簨瀹炰笂n1絳変簬4錛宯2絳変簬1錛宑h絳変簬1錛屼負浠涔堝憿錛熻鐪嬪垎鏋愶細 鐢變簬榛樿綾誨瀷杞崲鐨勫師鍥狅紝琛ㄨ揪寮廲h+num鐨勮綆楃粨鏋滅殑綾誨瀷鏄痠nt錛屽洜姝1鐨勫間負4錛佽岃〃杈懼紡ch=ch+num錛涚殑緇撴灉鐨勭被鍨嬫槸char錛岃浣忚櫧鐒跺湪璁$畻ch+num鏃訛紝緇撴灉涓篿nt錛屼絾鏄綋鎶婄粨鏋滆祴鍊肩粰ch鏃跺張榪涜浜嗙被鍨嬭漿鎹紝鍥犳琛ㄨ揪寮忕殑鏈緇堢被鍨嬭繕鏄痗har錛屾墍浠2絳変簬1銆俷1,n2鐨勫煎垎鍒負4鍜?錛屽叾鍘熷洜姝f槸鍥犱負sizeof榪斿洖鐨勬槸琛ㄨ揪寮忚綆楃粨鏋滅殑綾誨瀷澶у皬錛岃屼笉鏄〃杈懼紡涓崰鐢ㄦ渶澶у唴瀛樼殑鍙橀噺鐨勭被鍨嬪ぇ灝忥紒 瀵逛簬n2=sizeof(ch
=ch+num);涔嶄竴鐪嬭紼嬪簭璨屼技瀹炵幇浜嗚ch鍔犱笂num騫惰祴鍊肩粰ch鐨勫姛鑳斤紝浜嬪疄騫墮潪濡傛錛佺敱浜巗izeof鍙叧蹇冪被鍨嬪ぇ灝忥紝鎵浠ュ畠鑷劧涓嶅簲璇ュ琛ㄨ揪寮忔眰鍊鹼紝鍚﹀垯鏈夌敾铔囨坊瓚充箣瀚屼簡銆?strong>浣嗘槸錛?/strong>鍦ㄦ敮鎸佸彉闀挎暟緇勫畾涔夌殑錛堝嵆瀹炵幇浜哻99鏍囧噯鐨勶級緙栬瘧鍣?dev C++)涓墽琛屼簡int len = 3;cout<<sizeof(int [++len])<<”,”<<len;杈撳嚭鏄灝戝憿錛熺瓟妗堟槸16,4錛佽繖閲岀殑++len鍗存墽琛屼簡錛佸緢涓嶅彲鐞嗗柣鍚э紵榪欏埌搴曟槸涓轟粈涔堝憿錛熸垜緲婚槄浜嗐奣he New C Standard銆嬩竴涔︼紝榪欎富瑕佹槸鐢變簬鍙彉闀垮害鐨勬暟緇勭殑闀垮害闇瑕佸湪鍏墮暱搴﹁〃杈懼紡姹傚間箣鍚庢墠鑳界‘瀹氬ぇ灝忥紝鍥犳涓婅堪鎯呭喌涓嬶紝sizeof涓殑++len鎵ц浜嗐?/p>
姝f槸鍥犱負sizeof鐨勬搷浣滄暟涓殑鏌愪簺琛ㄨ揪寮忎細琚墽琛岋紝鑰屾湁浜涜〃杈懼紡涓嶄細琚墽琛岋紝榪欓噷鍛婅鍚勪綅錛屽敖閲忎笉瑕佸湪sizeof涓洿鎺ュ琛ㄨ揪寮忔眰澶у皬錛屼互鍏嶅嚭鐜伴敊璇紝浣犲彲浠ュ皢sizeof(ch = ch+num)錛涙敼鍐欐垚 ch = ch +num;sizeof(ch);铏界劧澶氫簡涓鏉¤鍙ワ紝鐪嬩技鍐椾綑浜嗭紝鍏跺疄濂藉澶氬錛氶鍏堟洿鍔犳竻鏅版槑浜嗭紝鍏舵涓嶄細鍑虹幇ch絳変簬1榪欐牱鐨勯敊璇?鍋囪紼嬪簭鐨勯昏緫鏈韓灝辨槸瑕佹墽琛宑h = ch +num;)銆?/p>
鐗規?錛歴izeof鍙互瀵瑰嚱鏁拌皟鐢ㄦ眰澶у皬錛屽茍涓旀眰寰楃殑澶у皬絳変簬榪斿洖綾誨瀷鐨勫ぇ灝忥紝浣嗘槸涓嶆墽琛屽嚱鏁頒綋錛?/strong> 鍋囪鏈夊涓嬪嚱鏁幫紙鏄竴涓啓寰楀緢涓嶅ソ鐨勫嚱鏁幫紝浣嗘槸鑳藉緢濂界殑璇存槑闇瑕侀槓榪扮殑闂錛夛細 int fun(int& num,const int& inc) { float div = 2.0; double ret =0; num = num+inc; ret = num/div; return ret; }閭d箞璇彞錛?/p>
int a = 3; int b = 5; cout<<sizeof(fun(a,b))<<endl; cout<<a<<endl;杈撳嚭澶氬皯鍛紵涓嶅悓鐨勪漢浼氱粰鍑轟笉鍚岀殑絳旀錛屾垜灝嗗sizeof(fun(a,b))鐨勫煎拰a鐨勫煎垎鍒繘琛岃璁猴細 棣栧厛sizeof(fun(a,b))鐨勫鹼細鍏舵紜槸4錛屽洜涓虹敤sizeof姹傚嚱鏁拌皟鐢ㄧ殑澶у皬鏃訛紝瀹冨緱鍒扮殑鏄嚱鏁?strong>榪斿洖綾誨瀷
鎺ヤ笅鏉ョ湅a鐨勫鹼細鍏舵紜瓟妗堟槸3錛佽繕璁板緱鐗規?鍚楋紵榪欓噷寰堢被浼鹼紝sizeof鐨勬搷浣滃璞℃槸鍑芥暟璋冪敤鏃訛紝瀹冧笉鎵ц鍑芥暟浣擄紒涓烘錛屽緩璁ぇ瀹朵笉瑕佹妸鍑芥暟浣撴斁鍦╯izeof鍚庨潰鐨勬嫭鍙烽噷錛岃繖鏍峰鏄撹浜鴻浠ヤ負鍑芥暟鎵ц浜嗭紝鍏跺疄瀹冩牴鏈病鎵ц銆?/p>
鏃㈢劧瀵瑰嚱鏁版潯鐢ㄤ嬌鐢╯izeof寰楀埌鐨勬槸鍑芥暟榪斿洖綾誨瀷鐨勫ぇ灝忥紝閭d箞寰堣嚜鐒惰兘寰楀嚭榪欐牱鐨勭粨璁猴細涓嶈兘瀵硅繑鍥炵被鍨嬩負void鐨勫嚱鏁頒嬌鐢╯izeof姹傚叾澶у皬錛佸師鍥犺鍙傝冪壒鎬?銆傚悓鐞嗭紝瀵硅繑鍥炵被鍨嬫槸浠諱綍綾誨瀷鐨勬寚閽堢殑鍑芥暟璋冪敤浣跨敤sizeof姹傚緱鐨勫ぇ灝忛兘涓?錛屽師鍥犺鍙傝冪壒鎬?銆?/p>
鏈鍚庢垜浠潵鐪嬬湅榪欐牱鐨勮鍙ワ細cout<<sizeof(fun)錛涘叾絳旀鏄灝戝憿錛熷叾瀹炲畠寰椾笉鍒扮瓟妗堬紝鍘熷洜鏄紪璇戝氨閫氫笉榪囷紒鏈寮濮嬶紝鎴戜互涓鴻兘杈撳嚭絳旀4錛屽洜涓烘垜璁や負fun鏄嚱鏁板悕錛岃屾垜鐭ラ亾鍑芥暟鍚嶅氨鏄嚱鏁扮殑鍦板潃錛屽湴鍧灝辨槸鎸囬拡錛屼簬鏄垜璁や負sizeof(fun)鍏跺疄灝辨槸瀵逛竴涓寚閽堟眰澶у皬錛屾牴鎹壒鎬?錛屼換浣曟寚閽堢殑澶у皬閮芥槸4銆傚彲鏄綋鎴戝幓楠岃瘉鏃訛紝緙栬瘧鍣ㄦ牴鏈笉璁╂垜閫氳繃錛佽繖涓槸涓轟粈涔堝憿錛熸垜涓鏃跺崐浼氭兂涓嶅埌錛屾墍浠ヨ繕璇鋒湅鍙嬩滑琛ュ厖錛?/p>
鐗規?錛歴izeof姹傚緱鐨勭粨鏋勪綋(鍙婂叾瀵硅薄)鐨勫ぇ灝忓茍涓嶇瓑浜庡悇涓暟鎹垚鍛樺璞$殑澶у皬涔嬪拰錛?/strong>
緇撴瀯浣撶殑澶у皬璺熺粨鏋勪綋鎴愬憳瀵歸綈鏈夊瘑鍒囧叧緋伙紝鑰屽茍闈炵畝鍗曞湴絳変簬鍚勪釜鎴愬憳鐨勫ぇ灝忎箣鍜岋紒姣斿瀵瑰涓嬬粨鏋勪綋涓や釜緇撴瀯浣揂銆丅浣跨敤sizeof鐨勭粨鏋滃垎鍒槸錛?6,24銆傚彲浠ョ湅鍑簊izeof(B)騫朵笉絳変簬sizeof(int)+sizeof(double)+sizeof(int)=16銆?/p>
|
struct A{ int num1; int num2; double num3; }; |
struct B{ int num1; double num3; int num2; }; |
濡傛灉鎮ㄤ笉浜嗚В緇撴瀯浣撶殑鎴愬憳瀵歸綈錛屼綘浼氭劅鍒伴潪甯告儕璁訛細緇撴瀯浣揂鍜孊涓寘鍚殑鎴愬憳閮戒竴鏍鳳紝鍙笉榪囬『搴忎笉鍚岃屽凡錛屼負浠涔堝叾澶у皬涓嶄竴鏍峰憿錛熻瑙i噴榪欎釜闂錛屽氨瑕佷簡瑙g粨鏋勪綋鎴愬憳瀵歸綈鐨勮鍒欙紝鐢變簬緇撴瀯浣撴垚鍛樺榻愰潪甯稿鏉傦紝鎴戝皢鐢ㄤ笓棰?#8212;—C/C++鍒侀捇闂鍚勪釜鍑葷牬涔嬩綅鍩熷拰鎴愬憳瀵歸綈——榪涜璁茶В錛岃繖閲屾垜鍙畝鍗曞湴浠嬬粛鍏惰鍒欙細
1銆?nbsp;緇撴瀯浣撶殑澶у皬絳変簬緇撴瀯浣撳唴鏈澶ф垚鍛樺ぇ灝忕殑鏁存暟鍊?/p>
2銆?nbsp;緇撴瀯浣撳唴鐨勬垚鍛樼殑棣栧湴鍧鐩稿浜庣粨鏋勪綋棣栧湴鍧鐨勫亸縐婚噺鏄叾綾誨瀷澶у皬鐨勬暣鏁板嶏紝姣斿璇磀ouble鍨嬫垚鍛樼浉瀵逛簬緇撴瀯浣撶殑棣栧湴鍧鐨勫湴鍧鍋忕Щ閲忓簲璇ユ槸8鐨勫嶆暟銆?/p>
3銆?nbsp;涓轟簡婊¤凍瑙勫垯1鍜?緙栬瘧鍣ㄤ細鍦ㄧ粨鏋勪綋鎴愬憳涔嬪悗榪涜瀛楄妭濉厖錛?/p>
鍩轟簬涓婇潰涓変釜瑙勫垯鎴戜滑鏉ョ湅鐪嬩負浠涔坰izeof(B)絳変簬24錛氶鍏堝亣璁劇粨鏋勪綋鐨勯鍦板潃涓?錛岀涓涓垚鍛榥um1鐨勯鍦板潃鏄?(婊¤凍瑙勫垯2錛屽墠闈㈡棤欏誨瓧鑺傚~鍏咃紝浜嬪疄涓婄粨鏋勪綋緇濆涓嶄細鍦ㄧ涓涓暟鎹垚鍛樺墠闈㈣繘琛屽瓧鑺傚~鍏?錛屽畠鐨勭被鍨嬫槸int錛屽洜姝ゅ畠鍗犵敤鍦板潃絀洪棿0——3銆傜浜屼釜鎴愬憳num3鏄痙ouble綾誨瀷錛屽畠鍗犵敤8涓瓧鑺傦紝鐢變簬涔嬪墠鐨刵um1鍙崰鐢ㄤ簡4涓瓧鑺傦紝涓轟簡婊¤凍瑙勫垯2錛岄渶瑕佷嬌鐢ㄨ鍒?鍦╪um1鍚庨潰濉厖4涓瓧鑺傦紙4——7錛夛紝浣垮緱num3鐨勮搗濮嬪湴鍧鍋忕Щ閲忎負8錛屽洜姝um3鍗犵敤鐨勫湴鍧絀洪棿鏄細8——15銆傜涓変釜鎴愬憳num2鏄痠nt鍨嬶紝鍏跺ぇ灝忎負4錛岀敱浜巒um1鍜宯um3涓鍏卞崰鐢ㄤ簡16涓瓧鑺傦紝姝ゆ椂鏃犻』浠諱綍濉厖灝辮兘婊¤凍瑙勫垯2銆傚洜姝um2鍗犵敤鐨勫湴鍧絀洪棿鏄?6——19銆傞偅涔堟槸涓嶆槸緇撴瀯浣撶殑鎬誨ぇ灝忓氨鏄?——19鍏?0涓瓧鑺傚憿錛熻娉ㄦ剰錛屽埆蹇樹簡瑙勫垯1錛佺敱浜庣粨鏋勪綋鍐呮渶澶ф垚鍛樻槸double鍗犵敤8涓瓧鑺傦紝鍥犳鏈鍚庤繕闇瑕佸湪num2鍚庨潰濉厖4涓瓧鑺傦紝浣垮緱緇撴瀯浣撴諱綋澶у皬涓?4銆?/p>
鎸夌収涓婇潰鐨勪笁涓鍒欏拰鍒嗘瀽榪囩▼錛屼綘鍙互寰堝鏄撳湴鐭ラ亾涓轟粈涔坰izeof(A)絳変簬16銆?strong>鐗瑰埆闇瑕佽鏄庣殑鏄?/strong>錛屾垜榪欓噷緇欏嚭浜嗕笁涓粨璁烘х殑瑙勫垯錛岃屾病鏈夐槓榪頒負浠涔堣榪欐牱銆備綘鎴栬鏈夊緢澶氱枒闂細涓轟粈涔堣緇撴瀯浣撴垚鍛樺榻愶紝涓轟粈涔堣瀹氫箟瑙勫垯1絳夈傚鏋滀綘鏈夎繖鏍風殑鐤戦棶錛屽茍灝濊瘯鍘誨紕娓呮鐨勮瘽錛岄偅涔堟垜鏁㈡柇璦錛屼笉涔呯殑灝嗘潵浣犲繀瀹氫細鏈夊ぇ鎴愬氨錛岃嚦灝戝湪瀛︿範c++涓婃槸榪欐牱銆傚墠闈㈣榪囷紝鎴戜細鍐嶅啓涓綃囦笓棰橈細C/C++鍒侀捇闂鍚勪釜鍑葷牬涔嬩綅鍩熷拰鎴愬憳瀵歸綈鏉ヨ緇嗗洖絳旇繖浜涢棶棰橈紝濡傛灉浣犳ヤ簬瑕佸紕鏄庣櫧錛岄偅涔堜綘鍙互鍙傝冨叾浠栬祫鏂欙紝姣斿璇淬婇珮璐ㄩ噺c++紼嬪簭璁捐鎸囧崡銆嬨?/p>
鏈鍚庡啀鎻愰啋涓鐐癸紝鍦ㄨ繘琛岃璁℃椂錛屾渶濂戒粩緇嗗畨鎺掔粨鏋勪綋涓悇涓垚鍛樼殑欏哄簭錛屽洜涓轟綘宸茬粡鐪嬪埌浜嗕笂闈㈢殑緇撴瀯浣揃涓庣粨鏋勪綋A鍖呭惈鐨勬垚鍛樼浉鍚岋紝鍙笉榪囬『搴忕暐鏈夊樊寮傦紝鏈緇堝氨瀵艱嚧浜咮姣擜澶氭秷鑰椾簡50%鐨勭┖闂達紝鍋囧鍦ㄥ伐紼嬩腑闇瑕佸畾涔夎緇撴瀯浣撶殑鏁扮粍錛屽娑堣楃殑絀洪檷灝嗘槸宸ㄥぇ鐨勩傚嵆浣垮皢鏉ュ唴瀛橀檷浠蜂負鐧借彍浠鋒牸錛屼綘涔熶笉瑕佸拷瑙嗚繖涓棶棰橈紝鍕や凱鑺傜害鏄腑鍥戒漢姘戠殑浼樿壇浼犵粺錛屾垜浠簲璇ョ戶鎵垮拰淇濇寔錛?/p>
鐗規?錛歴izeof涓嶈兘鐢ㄤ簬姹傜粨鏋勪綋鐨勪綅鍩熸垚鍛樼殑澶у皬錛屼絾鏄彲浠ユ眰寰楀寘鍚綅鍩熸垚鍛樼殑緇撴瀯浣撶殑澶у皬錛?/strong>
棣栧厛瑙i噴涓涓嬩粈涔堟槸浣嶅煙錛氱被鍨嬬殑澶у皬閮芥槸浠ュ瓧鑺?byte)涓哄熀鏈崟浣嶇殑錛屾瘮濡俿izeof(char)涓?byte錛宻izeof(int)涓?byte絳夈傛垜浠煡閬撴煇涓被鍨嬬殑澶у皬紜畾浜嗚綾誨瀷鎵鑳藉畾涔夌殑鍙橀噺鐨勮寖鍥達紝姣斿sizeof(char)涓?byte錛岃?byte絳変簬8bit錛屾墍浠har綾誨瀷鐨勫彉閲忚寖鍥存槸-128——127錛屾垨鑰?——255(unsigned char)錛屾諱箣瀹冨彧鑳藉畾涔?8=256涓暟錛佺劧鑰岋紝瑕佸懡鐨勬槸bool綾誨瀷鍙彇鍊紅rue鍜宖alse錛屾寜鐞嗘墍鍙敤1bit(鍗?/8byte)灝卞浜嗭紝浣嗕簨瀹炰笂sizeof(bool)絳変簬1銆傚洜姝ゆ垜浠彲浠ヨ涓篵ool鍙橀噺嫻垂浜?7.5%鐨勫瓨鍌ㄧ┖闂達紒榪欏湪鏌愪簺瀛樺偍絀洪棿鏈夐檺鐨勮澶?姣斿宓屽叆寮忚澶?涓婃槸涓嶅悎閫傜殑錛屼負姝ら渶瑕佹彁渚涗竴縐嶈兘瀵瑰彉閲忕殑瀛樺偍絀洪棿綺炬墦緇嗙畻鐨勬満鍒訛紝榪欏氨鏄綅鍩熴傜畝鍗曟潵璇達紝鍦?strong>緇撴瀯浣?/strong>鐨勬垚鍛樺彉閲忓悗闈㈣窡涓婄殑涓涓啋鍙?涓涓暣鏁幫紝灝變唬琛ㄤ綅鍩燂紝璇風湅濡備笅鐨勭粨鏋勪綋錛?/p>
Struct A
{
Bool b:1;
char ch1:4;
char ch2:4;
}item; 鍏朵腑b,ch1,ch2閮芥槸浣嶅煙鎴愬憳錛岃宨鏄櫘閫氭垚鍛樸傝緇撴瀯浣撶殑璇曞浘璁゜ool綾誨瀷鐨勫彉閲廱鍙崰鐢?涓猙it錛岃ch1鍜宑h2鍒嗗埆鍙崰鐢?涓猙it錛屼互姝ゆ潵杈懼埌瀵瑰唴瀛樼簿鎵撶粏綆楃殑鍔熻兘(浜嬪疄涓婁嬌鐢ㄤ綅鍩熷鍐呭瓨綺炬墦緇嗙畻鏈夋椂鍊欒兘鎴愬姛錛屾湁鏃跺欏嵈鏈繀錛屾垜灝嗐?strong>C/C++鍒侀捇闂鍚勪釜鍑葷牬涔嬩綅鍩熷拰鎴愬憳瀵歸綈銆嬭繘琛岃榪?銆?strong>鍙﹀闇瑕佺壒鍒敞鎰忕殑鏄細c璇█瑙勫畾浣嶅煙鍙兘鐢ㄤ簬int錛宻igned int鎴栬卽nsigned int綾誨瀷錛孋++鍙堣ˉ鍏呬簡char鍜宭ong綾誨瀷錛?/strong>浣犱笉鑳借繖鏍蜂嬌鐢ㄤ綅鍩燂細float f:8;榪欐槸涓嶈兘閫氳繃緙栬瘧鐨勩?strong>騫朵笖浣嶅煙鍙橀噺涓嶈兘鍦ㄥ嚱鏁版垨鑰呭叏灞鍖哄畾涔?/strong>錛屽彧鑳藉湪緇撴瀯浣擄紝鑷畾涔夌被錛岃仈鍚?union)涓嬌鐢紒
鍩轟簬涓婇潰鐨勭粨鏋勪綋錛岃鍙izeof(item.b)鍜宻izeof(item.ch1)絳夊浣嶅煙鎴愬憳姹傚ぇ灝忕殑璇彞鍧囦笉鑳介氳繃緙栬瘧銆?strong>鍏跺師鍥犺兘鍐嶆湰綃囩殑姒傝涓壘鍒幫細sizeof浠yte涓哄崟浣嶈繑鍥炴搷浣滄暟鐨勫ぇ灝忥紒
閭d箞鐖卞濂介棶鐨勪綘鍙兘瑕侀棶錛宻izeof(A)鑳藉惁閫氳繃緙栬瘧鍛紵濡備綍鑳斤紝鍏剁粨鏋滃張鏄灝戝憿錛熻繖鏄袱緇欓潪甯稿ソ鐨勯棶棰橈紝浜嬪疄涓婃垜涔嬪墠娌℃湁鐪嬪埌浠諱綍鍏充簬榪欐柟闈㈢殑璁鴻堪(鍙兘鏄垜鐪嬬殑璧勬枡涓嶈凍)錛屾垜姝f槸鍦ㄧ湅鍒皊izeof(item.b)涓嶈兘閫氳繃緙栬瘧鏃舵兂鍒頒簡榪欎袱涓棶棰橈紝鐒跺悗閫氳繃楠岃瘉寰楀嚭浜嗗悗闈㈢殑緇撹錛?strong>瀵瑰寘鍚綅鍩熺殑緇撴瀯浣撴槸鍙互浣跨敤sizeof姹傚叾澶у皬鐨勶紝浣嗗叾姹傚艱鍒欐瘮杈冨鏉傦紝涓嶄粎娑夊強鍒版垚鍛樺榻愶紝榪樹笌鍏蜂綋緙栬瘧鐜鏈夊叧錛?/strong>鍦ㄨ繖閲屼綘鍙渶瑕佺煡閬撳彲浠ュ鍖呭惈浣嶅煙鐨勭粨鏋勪綋浣跨敤sizeof姹傚叾澶у皬錛屽浜巗izeof鏄牴鎹粈涔堣鍒欐潵姹傝繖涓ぇ灝忕殑闂錛屾垜灝嗕細鍦ㄤ笓棰橈細銆?strong>C/C++鍒侀捇闂鍚勪釜鍑葷牬涔嬩綅鍩熷拰鎴愬憳瀵歸綈銆?/strong>涓繘琛岃緇嗛槓榪?strong>銆?/strong>
鍚庤錛?/strong>
鑷蟲錛屾湰涓撻宸笉澶氳緇撴潫浜嗭紝闇瑕佽鏄庣殑鏄紝榪欓噷騫舵病鏈夊寘鍚墍鏈夊叧浜巗izeof鐨勭煡璇嗙偣錛屼絾鏄篃鍑犱箮鍖呭惈浜嗘墍鏈夌殑瀹規槗鍑洪敊鐨勭壒鎬с備負浜嗗畬鎴愯鏂囷紝鎴戣姳浜嗘柇鏂畫緇?澶╁崐鏃墮棿錛屾兂鎯蟲晥鐜囧疄鍦ㄦ槸搴曚笅銆傜敱浜庢槸鏈郴鍒楃殑絎竴涓笓棰橈紝鎴戞牸澶栨厧閲嶏紝娣辨曡閿欎簡璇澶у銆傚嵆渚垮姝わ紝涔熼毦鍏嶉敊璇垨涓嶅Ε涔嬪錛岃繕璇峰悇浣嶆湅鍙嬫寚姝o紒
鍙﹀錛屾垜鏈夊嚑鍙ヨ瘽瑕佸澶у鐢熸湅鍙嬩滑璇達細鏁欑涔﹂氬父鍙槸鏁欐巿寰堝熀紜鐨勭煡璇嗭紝瑕佹兂娣卞叆瀛︿範錛岃繕闇瑕佺炕闃呭叾浠栬祫鏂欙紝姣斿璁烘枃銆佺綉緇滆祫鏂欍佽鍧涘崥鏂囷紝鏈閲嶈鐨勪竴鐐規槸瑕佸湪瀛︿範鏃剁粡甯告葷粨銆佽褰曘佸綊綰籌紝縐皯鎴愬錛岃繖鏍峰潥鎸佷笅鏉ヤ竴瀹氬彈鐩婂尓嫻呫? @import url(http://m.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);