锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
{
this.Calendar1.Attributes.Add("style", "display:none;border-width:1px;border-style:solid;border-collapse:collapse;z-index: 100; left: 0px;");
TextBox1.Attributes.Add("onfocus", "javascript:document.getElementById('Calendar1').style.display=''");
}
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
TextBox1.Text = this.Calendar1.SelectedDate.ToShortDateString();
Calendar1.Attributes.Add("onblur", "javascript:document.getElementById('Calendar1').style.display='none'");
}
protected void Button1_Click(object sender, EventArgs e)
{
Console.Write(this.TextBox1.Text);
]]>
鎬濈緋葷粺浜氬お鍖篘GN/VoIP棣栧腑鎶鏈?/font>欏鵑棶孌峰悍璁や負錛屽敖綆?#8220;杞氦鎹?#8221;鏄洰鍓峃GN璁ㄨ鐨勭儹鐐癸紝浣嗘槸浜轟滑瀵瑰畠鐨勬蹇典粛鐒舵湁浜涗技鏄岄潪銆備粬璇?“‘杞氦鎹?#8217;榪欎釜鏈鍙互璇存槸浠嶴oftswitch緲昏瘧鑰屽緱銆係oftswitch榪欎竴鏈鍊熺敤浜嗕紶緇?a target=_blank>鐢典俊棰嗗煙PSTN緗戜腑鐨?#8216;紜?#8217;浜ゆ崲鏈?#8216;switch’鐨勬蹇碉紝鎵涓嶅悓鐨勬槸寮鴻皟鍏跺熀浜庡垎緇勭綉涓婂懠鍙帶鍒朵笌濯掍綋浼犺緭鎵胯澆鐩稿垎紱葷殑鍚箟銆傚浗鍐呬竴寮濮嬫湁浜哄皢Softswitch璇戜負‘杞氦鎹?#8217;銆備絾鏄?#8216;杞氦鎹?#8217;榪欎釜緲昏瘧鏈鍚箟涓嶅鍗佸垎鏄庢櫚錛屽崟浠庡瓧闈笂鐪嬪緢闅句嬌浜虹悊瑙e畠絀剁珶鏄澶囩郴緇熸蹇佃繕鏄綋緋繪蹇點?#8221;
孌峰悍鎸囧嚭錛屾垜鍥界數淇′笟鍘嗘潵灝嗗悕璇嶅睘鎬х殑銆佽澶囨蹇佃寖鐣寸殑switch璇戜負“浜ゆ崲鏈?#8221;錛岃屽皢鍔ㄥ悕璇嶅睘鎬х殑switching璇戜負“浜ゆ崲”銆俋25switch璇戜負X25浜ゆ崲鏈猴紝ATMswitch璇戜負ATM浜ゆ崲鏈猴紝L2/L3 switch 璇戜負浜屽眰/涓夊眰浜ゆ崲鏈恒傚洜姝や粬寤鴻錛屼負瀛︽湳鐮旇鐨勪弗鑲冩? 搴旇灝唖oftswitch鏇翠負紜垏鍦拌瘧涓?#8220;杞氦鎹㈡満”銆傝繖鍙槸緲昏瘧姒傚康涓婄殑闂銆備笉榪囦粠鏌愪竴鏂歸潰鏉ヨ錛屽浜庤蔣浜ゆ崲姒傚康鐨勬ā緋婏紝涔熷弽鏄犱簡浜т笟鐣屽浜庤蔣浜ゆ崲璁よ瘑涓婂湪鏌愪簺鏂歸潰渚濇棫瀛樺湪鍋忓樊錛屽瓨鍦ㄧ潃榪囧垎寮鴻皟鏌愪竴鏂歸潰鐨勮兘鍔涳紝鎴栬呮槸榪囧垎澶稿ぇ浜嗚蔣浜ゆ崲鍔熻兘鐨勬儏鍐點傜敋鑷沖彲浠ヨ鍦ㄥ緢闀跨殑涓孌墊椂闂達紝杞氦鎹㈣浜轟負鍦?#8220;紲炶瘽”浜嗭紝瀹冭璁や負鏄竴縐嶄唬琛ㄧ潃閫氫俊琛屼笟鐨勬湭鏉ワ紝浼間箮鏃犳墍涓嶈兘鐨勬妧鏈?
杞氦鎹?/span>鏄竴縐嶆鍦ㄥ彂灞曠殑姒傚康錛屽寘鍚澶氬姛鑳姐傚叾鏍稿績鏄竴涓噰鐢ㄦ爣鍑嗗寲鍗忚鍜屽簲鐢ㄧ紪紼嬫帴鍙o紙API錛夌殑寮鏀句綋緋葷粨鏋?/span>銆傝繖灝變負絎笁鏂瑰紑鍙戞柊搴旂敤鍜屾柊涓氬姟鏁炲紑浜嗗ぇ闂ㄣ傝蔣浜ゆ崲浣撶郴緇撴瀯鐨勫叾瀹冮噸瑕佺壒鎬ц繕鍖呮嫭搴旂敤鍒嗙錛坉e-couplingofapplications錛夈佸懠鍙帶鍒跺拰鎵胯澆鎺у埗銆?/p>
杞氦鎹㈡槸涓縐嶅姛鑳藉疄浣擄紝涓轟笅涓浠g綉緇滐籍錛э籍鎻愪緵鍏鋒湁瀹炴椂鎬ц姹傜殑涓氬姟鐨勫懠鍙帶鍒跺拰榪炴帴鎺у埗鍔熻兘錛屾槸涓嬩竴浠g綉緇滃懠鍙笌鎺у埗鐨勬牳蹇冦?/p>
綆鍗曞湴鐪嬶紝杞氦鎹㈡槸瀹炵幇浼犵粺紼嬫帶浜ゆ崲鏈虹殑“鍛煎彨鎺у埗”鍔熻兘鐨勫疄浣?/span>錛屼絾浼犵粺鐨?#8220;鍛煎彨鎺у埗”鍔熻兘鏄拰涓氬姟緇撳悎鍦ㄤ竴璧風殑錛屼笉鍚岀殑涓氬姟鎵闇瑕佺殑鍛煎彨鎺у埗鍔熻兘涓嶅悓錛岃岃蔣浜ゆ崲鏄笌涓氬姟鏃犲叧鐨勶紝榪欒姹傝蔣浜ゆ崲鎻愪緵鐨勫懠鍙帶鍒跺姛鑳芥槸鍚勭涓氬姟鐨勫熀鏈懠鍙帶鍒躲?/p>
浼樺厛綰?/p>
榪愮畻絎?/p>
鍚嶇О鎴栧惈涔?/p>
浣跨敤褰㈠紡 緇撳悎鏂瑰悜 璇存槑 1 [] 鏁扮粍涓嬫爣 鏁扮粍鍚峓甯擱噺琛ㄨ揪寮廬 宸﹀埌鍙?/p>
() 鍦嗘嫭鍙?/p>
錛堣〃杈懼紡錛?鍑芥暟鍚?褰㈠弬琛? . 鎴愬憳閫夋嫨錛堝璞★級 瀵硅薄.鎴愬憳鍚?/p>
-> 鎴愬憳閫夋嫨錛堟寚閽堬級 瀵硅薄鎸囬拡->鎴愬憳鍚?/p>
2 - 璐熷彿榪愮畻絎?/p>
-琛ㄨ揪寮?/p>
鍙沖埌宸?/p>
鍗曠洰榪愮畻絎?/p>
(綾誨瀷) 寮哄埗綾誨瀷杞崲 (鏁版嵁綾誨瀷)琛ㄨ揪寮?/p>
++ 鑷榪愮畻絎?/p>
++鍙橀噺鍚?鍙橀噺鍚?+ 鍗曠洰榪愮畻絎?/p>
-- 鑷噺榪愮畻絎?/p>
--鍙橀噺鍚?鍙橀噺鍚?- 鍗曠洰榪愮畻絎?/p>
* 鍙栧艱繍綆楃 *鎸囬拡鍙橀噺 鍗曠洰榪愮畻絎?/p>
& 鍙栧湴鍧榪愮畻絎?/p>
&鍙橀噺鍚?/p>
鍗曠洰榪愮畻絎?/p>
! 閫昏緫闈炶繍綆楃 !琛ㄨ揪寮?/p>
鍗曠洰榪愮畻絎?/p>
~ 鎸変綅鍙栧弽榪愮畻絎?/p>
~琛ㄨ揪寮?/p>
鍗曠洰榪愮畻絎?/p>
sizeof 闀垮害榪愮畻絎?/p>
sizeof(琛ㄨ揪寮? 3 / 闄?/p>
琛ㄨ揪寮?琛ㄨ揪寮?/p>
宸﹀埌鍙?/p>
鍙岀洰榪愮畻絎?/p>
* 涔?/p>
琛ㄨ揪寮?琛ㄨ揪寮?/p>
鍙岀洰榪愮畻絎?/p>
% 浣欐暟錛堝彇妯★級 鏁村瀷琛ㄨ揪寮?鏁村瀷琛ㄨ揪寮?/p>
鍙岀洰榪愮畻絎?/p>
4 + 鍔?/p>
琛ㄨ揪寮?琛ㄨ揪寮?/p>
宸﹀埌鍙?/p>
鍙岀洰榪愮畻絎?/p>
- 鍑?/p>
琛ㄨ揪寮?琛ㄨ揪寮?/p>
鍙岀洰榪愮畻絎?/p>
5 << 宸︾Щ 鍙橀噺<<琛ㄨ揪寮?/p>
宸﹀埌鍙?/p>
鍙岀洰榪愮畻絎?/p>
>> 鍙崇Щ 鍙橀噺>>琛ㄨ揪寮?/p>
鍙岀洰榪愮畻絎?/p>
6 > 澶т簬 琛ㄨ揪寮?gt;琛ㄨ揪寮?/p>
宸﹀埌鍙?/p>
鍙岀洰榪愮畻絎?/p>
>= 澶т簬絳変簬 琛ㄨ揪寮?gt;=琛ㄨ揪寮?/p>
鍙岀洰榪愮畻絎?/p>
< 灝忎簬 琛ㄨ揪寮?lt;琛ㄨ揪寮?/p>
鍙岀洰榪愮畻絎?/p>
<= 灝忎簬絳変簬 琛ㄨ揪寮?lt;=琛ㄨ揪寮?/p>
鍙岀洰榪愮畻絎?/p>
7 == 絳変簬 琛ㄨ揪寮?=琛ㄨ揪寮?/p>
宸﹀埌鍙?/p>
鍙岀洰榪愮畻絎?/p>
!= 涓嶇瓑浜?/p>
琛ㄨ揪寮?= 琛ㄨ揪寮?/p>
鍙岀洰榪愮畻絎?/p>
8 & 鎸変綅涓?/p>
琛ㄨ揪寮?amp;琛ㄨ揪寮?/p>
宸﹀埌鍙?/p>
鍙岀洰榪愮畻絎?/p>
9 ^ 鎸変綅寮傛垨 琛ㄨ揪寮廭琛ㄨ揪寮?/p>
宸﹀埌鍙?/p>
鍙岀洰榪愮畻絎?/p>
10 | 鎸変綅鎴?/p>
琛ㄨ揪寮弢琛ㄨ揪寮?/p>
宸﹀埌鍙?/p>
鍙岀洰榪愮畻絎?/p>
11 && 閫昏緫涓?/p>
琛ㄨ揪寮?amp;&琛ㄨ揪寮?/p>
宸﹀埌鍙?/p>
鍙岀洰榪愮畻絎?/p>
12 || 閫昏緫鎴?/p>
琛ㄨ揪寮弢|琛ㄨ揪寮?/p>
宸﹀埌鍙?/p>
鍙岀洰榪愮畻絎?/p>
13 ?: 鏉′歡榪愮畻絎?/p>
琛ㄨ揪寮?? 琛ㄨ揪寮?: 琛ㄨ揪寮? 鍙沖埌宸?/p>
涓夌洰榪愮畻絎?/p>
14 = 璧嬪艱繍綆楃 鍙橀噺=琛ㄨ揪寮?/p>
鍙沖埌宸?/p>
/= 闄ゅ悗璧嬪?/p>
鍙橀噺/=琛ㄨ揪寮?/p>
*= 涔樺悗璧嬪?/p>
鍙橀噺*=琛ㄨ揪寮?/p>
%= 鍙栨ā鍚庤祴鍊?/p>
鍙橀噺%=琛ㄨ揪寮?/p>
+= 鍔犲悗璧嬪?/p>
鍙橀噺+=琛ㄨ揪寮?/p>
-= 鍑忓悗璧嬪?/p>
鍙橀噺-=琛ㄨ揪寮?/p>
<<= 宸︾Щ鍚庤祴鍊?/p>
鍙橀噺<<=琛ㄨ揪寮?/p>
>>= 鍙崇Щ鍚庤祴鍊?/p>
鍙橀噺>>=琛ㄨ揪寮?/p>
&= 鎸変綅涓庡悗璧嬪?/p>
鍙橀噺&=琛ㄨ揪寮?/p>
^= 鎸変綅寮傛垨鍚庤祴鍊?/p>
鍙橀噺^=琛ㄨ揪寮?/p>
|= 鎸変綅鎴栧悗璧嬪?/p>
鍙橀噺|=琛ㄨ揪寮?/p>
15 , 閫楀彿榪愮畻絎?/p>
琛ㄨ揪寮?琛ㄨ揪寮?… 宸﹀埌鍙?/p>
浠庡乏鍚戝彸欏哄簭榪愮畻 璇存槑錛?/p>
鍚屼竴浼樺厛綰х殑榪愮畻絎︼紝榪愮畻嬈″簭鐢辯粨鍚堟柟鍚戞墍鍐沖畾銆?/p>
memest鍘熷瀷 (please type "man memset" in your shell) void *memset(void *s, int c, size_t n); memset:浣滅敤鏄湪涓孌靛唴瀛樺潡涓~鍏呮煇涓粰瀹氱殑鍊鹼紝瀹冨杈冨ぇ鐨勭粨鏋勪綋鎴栨暟緇勮繘琛屾竻闆舵搷浣滅殑涓縐嶆渶蹇柟娉曘?/span> 甯歌鐨勪笁縐嶉敊璇?/strong> 絎竴: 鎼炲弽浜哻 鍜?nbsp;n鐨勪綅緗? 涓瀹氳璁頒綇 濡傛灉瑕佹妸涓涓猚har a[20]娓呴浂, 涓瀹氭槸 memset(a, 0, 20) 絎簩: 榪囧害浣跨敤memset, 鎴戞兂榪欎簺紼嬪簭鍛樺彲鑳芥湁鏌愮蹇冪悊闃村獎, 浠栦滑鎯ф曟湭緇忓垵濮嬪寲鐨勫唴瀛? 鎵浠ヤ粬浠細鍐欏嚭榪欐牱鐨勪唬鐮? char buffer[20]; memset(buffer, 0, sizeof((char)*20)); 榪欓噷鐨刴emset鏄浣欑殑. 鍥犱負榪欏潡鍐呭瓨椹笂灝辮瑕嗙洊浜? 娓呴浂娌℃湁鎰忎箟. 絎笁: 鍏跺疄榪欎釜閿欒涓ユ牸鏉ヨ涓嶈兘綆楃敤閿檓emset, 浣嗘槸瀹冪粡甯稿湪浣跨敤memset鐨勫満鍚堝嚭鐜?/strong> int some_func(struct something *a){ 闂?/strong>:涓轟綍瑕佺敤memset緗浂?memset( &Address, 0, sizeof(Address))錛涚粡甯哥湅鍒拌繖鏍風殑鐢ㄦ硶錛屽叾瀹炰笉鐢ㄧ殑璇濓紝鍒嗛厤鏁版嵁鐨勬椂鍊欙紝鍓╀綑鐨勭┖闂翠篃浼氱疆闆剁殑銆?/p>
絳?1.濡傛灉涓嶆竻絀猴紝鍙兘浼氬湪嫻嬭瘯褰撲腑鍑虹幇閲庡箋?nbsp;浣犲仛涓嬮潰鐨勮瘯楠岀湅鐪嬬粨鏋?) char buf[5]錛?nbsp; CString str,str1錛?nbsp;//memset(buf,0,sizeof(buf))錛?nbsp;for(int i = 0錛沬<5錛沬++) { str.Format(“%d “,buf[i])錛?nbsp;str1 +=str 錛?nbsp;} TRACE(“%s\r\n“,str1) 2.鍏跺疄涓嶇劧錛佺壒鍒槸瀵逛簬瀛楃鎸囬拡綾誨瀷鐨勶紝鍓╀綑鐨勯儴鍒嗛氬父鏄笉浼氫負0鐨?/span>錛屼笉濡ㄤ綔涓涓瘯楠岋紝瀹氫箟涓涓瓧絎︽暟緇勶紝騫惰緭鍏ヤ竴涓插瓧絎︼紝濡傛灉涓嶇敤memset瀹炵幇娓呴浂錛屼嬌鐢∕essageBox鏄劇ず鍑烘潵灝變細鏈変貢鐮侊紙0琛ㄧずNULL錛屽鏋滄湁錛屽氨榛樿瀛楃緇撴潫錛屼笉浼氳緭鍑哄悗闈㈢殑涔辯爜錛?/p>
闂? 濡備笅demo鏄彲浠ョ殑錛岃兘鎶婃暟緇勪腑鐨勫厓绱犲奸兘璁劇疆鎴愬瓧絎?錛?br>#include <iostream> 1錛岀涓涓▼搴忎負浠涔堝彲浠ワ紝鑰岀浜屼釜涓嶈錛?br>2錛屼笉鎯寵鐢╢or錛屾垨鏄痺hile寰幆鏉ュ垵濮嬪寲int a[5];鑳藉仛鍒板悧錛燂紙鏈夋病鏈変竴涓儚memset錛堬級榪欐牱鐨勫嚱鏁板垵濮嬪寲錛?br> 絳? 1.鍥犱負絎竴涓▼搴忕殑鏁扮粍a鏄瓧絎﹀瀷鐨勶紝瀛楃鍨嬪崰鎹唴瀛樺ぇ灝忔槸1Byte錛岃宮emset鍑芥暟涔熸槸浠ュ瓧鑺備負鍗曚綅榪涜璧嬪肩殑錛屾墍浠ヤ綘杈撳嚭娌℃湁闂銆傝岀浜屼釜紼嬪簭a鏄暣鍨嬬殑錛屼嬌鐢╩emset榪樻槸鎸夊瓧鑺傝祴鍊鹼紝榪欐牱璧嬪煎畬浠ュ悗錛屾瘡涓暟緇勫厓绱犵殑鍊煎疄闄呬笂鏄?x01010101鍗沖崄榪涘埗鐨?6843009銆備綘鐪嬬湅浣犺緭鍑虹粨鏋滄槸鍚﹁繖鏍鳳紵 2.濡傛灉鐢╩emset(a,1,20); (2)itoa鐨勫疄鐜幫細 棰樼洰錛? 鎽?瑕侊細鏈枃璁ㄨ浜哋racle鍜孲QL Server鐨勫湪浜嬪姟澶勭悊涓婄殑鍖哄埆錛屽茍鍒嗘瀽浜嗗叾瀹炵幇鏈哄埗鐨勫樊寮傘?/p>
鍏抽敭璇嶏細Oracle錛汼QL Server錛涗簨鍔★紱浜嬪姟闅旂綰у埆錛汥DL銆?/p>
浜嬪姟澶勭悊鏄墍鏈夊ぇ鍨嬫暟鎹簱浜у搧鐨勪竴涓叧閿棶棰橈紝鍚勬暟鎹簱鍘傚晢閮藉湪榪欎釜鏂歸潰鑺辮垂浜嗗緢澶х簿鍔涳紝涓嶅悓鐨勪簨鍔″鐞嗘柟寮忎細瀵艱嚧鏁版嵁搴撴ц兘鍜屽姛鑳戒笂鐨勫法澶у樊寮傘?/p>
浜嬪姟澶勭悊涔熸槸鏁版嵁搴撶鐞嗗憳涓庢暟鎹簱搴旂敤紼嬪簭寮鍙戜漢鍛樺繀欏繪繁鍒葷悊瑙g殑涓涓棶棰橈紝瀵硅繖涓棶棰樼殑鐤忓拷鍙兘浼氬鑷村簲鐢ㄧ▼搴忛昏緫閿欒浠ュ強鏁堢巼浣庝笅銆?/p>
涓嬮潰鎴戜滑閽堝Oracle鍙奡QL Server榪欎袱縐嶅綋鍓嶅箍娉涗嬌鐢ㄧ殑澶у瀷鏁版嵁搴撲駭鍝侊紝鎺㈣涓涓嬪畠浠湪浜嬪姟澶勭悊鏂歸潰鐨勪竴浜涘樊寮傘傚娌℃湁鐗規畩璇存槑錛屾湰鏂囧唴瀹歸傜敤鐨勬暟鎹簱浜у搧鐗堟湰涓篛racle9i鍙奡QL Server 2000錛屽叾涓殑紺轟緥SQL璇彞錛屽浜嶰racle鏄湪SQL*Plus涓墽琛岋紝鑰屽浜嶴QL Server 2000鏄湪osql涓墽琛屻?br>涓.浜嬪姟鐨勬蹇?/p>
浜嬪姟鍙互鐪嬩綔鏄敱瀵規暟鎹簱鐨勮嫢騫叉搷浣滅粍鎴愮殑涓涓崟鍏冿紝榪欎簺鎿嶄綔瑕佷箞閮藉畬鎴愶紝瑕佷箞閮藉彇娑堬紝浠庤屼繚璇佹暟鎹弧瓚充竴鑷存х殑瑕佹眰銆備簨鍔$殑涓涓吀鍨嬩緥瀛愭槸閾惰涓殑杞笎鎿嶄綔錛屽笎鎴稟鎶婁竴瀹氭暟閲忕殑嬈鵑」杞埌甯愭埛B涓婏紝榪欎釜鎿嶄綔鍖呮嫭涓や釜姝ラ錛屼竴涓槸浠庡笎鎴稟涓婃妸瀛樻鍑忓幓涓瀹氭暟閲忥紝浜屾槸鍦ㄥ笎鎴稡涓婃妸瀛樻鍔犱笂鐩稿悓鐨勬暟閲忋傝繖涓や釜姝ラ鏄劇劧瑕佷箞閮藉畬鎴愶紝瑕佷箞閮藉彇娑堬紝鍚﹀垯閾惰灝變細鍙楁崯澶便傛樉鐒訛紝榪欎釜杞笎鎿嶄綔涓殑涓や釜姝ラ灝辨瀯鎴愪竴涓簨鍔°?/p>
鏁版嵁搴撲腑鐨勪簨鍔¤繕鏈夊涓婣CID鐗瑰緛銆?/p>
ACID鍒嗗埆鏄洓涓嫳鏂囧崟璇嶇殑棣栧啓瀛楁瘝錛岃繖鍥涗釜鑻辨枃鍗曡瘝鏄疉tomicity銆丆onsistency銆両solation銆丏urability錛屽垎鍒炕璇戜負鍘熷瓙鎬с佷竴鑷存с侀殧紱繪с佹寔涔呮с?/p>
鍘熷瓙鎬э細鎸囦簨鍔′腑鐨勬搷浣滐紝鎴栬呴兘瀹屾垚錛屾垨鑰呴兘鍙栨秷銆?/p>
涓鑷存э細鎸囦簨鍔′腑鐨勬搷浣滀繚璇佹暟鎹簱涓殑鏁版嵁涓嶄細鍑虹幇閫昏緫涓婁笉涓鑷寸殑鎯呭喌錛屼竴鑷存т竴鑸細闅愬惈鐨勫寘鎷湪鍏朵粬灞炴т箣涓?/p>
闅旂鎬э細鎸囧綋鍓嶇殑浜嬪姟涓庡叾浠栨湭瀹屾垚鐨勪簨鍔℃槸闅旂鐨勩傚湪涓嶅悓鐨勯殧紱葷駭鍒笅錛屼簨鍔$殑璇誨彇鎿嶄綔錛屽彲浠ュ緱鍒扮殑緇撴灉鏄笉鍚岀殑銆?/p>
鎸佷箙鎬э細鎸囧浜嬪姟鍙戝嚭COMMIT鍛戒護鍚庯紝鍗充嬌榪欐椂鍙戠敓緋葷粺鏁呴殰錛屼簨鍔$殑鏁堟灉涔熻鎸佷箙鍖栦簡銆備笌姝ょ浉鍙嶇殑鏄紝褰撳湪浜嬪姟鎵ц榪囩▼涓紝緋葷粺鍙戠敓鏁呴殰錛屽垯浜嬪姟鐨勬搷浣滈兘琚洖婊氾紝鍗蟲暟鎹簱鍥炲埌浜嬪姟寮濮嬩箣鍓嶇殑鐘舵併?/p>
瀵規暟鎹簱涓殑鏁版嵁淇敼閮芥槸鍦ㄥ唴瀛樹腑瀹屾垚鐨勶紝榪欎簺淇敼鐨勭粨鏋滃彲鑳藉凡緇忓啓鍒扮‖鐩樹篃鍙兘娌℃湁鍐欏埌紜洏錛屽鏋滃湪鎿嶄綔榪囩▼涓紝鍙戠敓鏂數鎴栫郴緇熼敊璇瓑鏁呴殰錛屾暟鎹簱鍙互淇濊瘉鏈粨鏉熺殑浜嬪姟瀵規暟鎹簱鐨勬暟鎹慨鏀圭粨鏋滃嵆浣垮凡緇忓啓鍏ョ鐩橈紝鍦ㄤ笅嬈℃暟鎹簱鍚姩鍚庝篃浼氳鍏ㄩ儴鎾ら攢錛涜屽浜庣粨鏉熺殑浜嬪姟錛屽嵆浣垮叾淇敼鐨勭粨鏋滆繕鏈啓鍏ョ鐩橈紝鍦ㄦ暟鎹簱涓嬫鍚姩鍚庝細閫氳繃浜嬪姟鏃ュ織涓殑璁板綍榪涜“閲嶅仛”錛屽嵆鎶婁涪澶辯殑鏁版嵁淇敼緇撴灉閲嶆柊鐢熸垚錛屽茍鍐欏叆紓佺洏錛屼粠鑰屼繚璇佺粨鏉熶簨鍔″鏁版嵁淇敼鐨勬案涔呭寲銆傝繖鏍蜂篃淇濊瘉浜嗕簨鍔′腑鐨勬搷浣滆涔堝叏閮ㄥ畬鎴愶紝瑕佷箞鍏ㄩ儴鎾ら攢銆?/p>
浜?浜嬪姟璁劇疆鍙婄被鍨嬬殑鍖哄埆 鍦⊿QL Server涓湁涓夌浜嬪姟綾誨瀷錛屽垎鍒槸錛氶殣寮忎簨鍔°佹樉寮忎簨鍔°佽嚜鍔ㄦ彁浜や簨鍔★紝緙虹渷涓鴻嚜鍔ㄦ彁浜ゃ?/p>
鑷姩鎻愪氦錛屾槸鎸囧浜庣敤鎴峰彂鍑虹殑姣忔潯SQL璇彞錛孲QL Server閮戒細鑷姩寮濮嬩竴涓簨鍔★紝騫朵笖鍦ㄦ墽琛屽悗鑷姩榪涜鎻愪氦鎿嶄綔鏉ュ畬鎴愯繖涓簨鍔★紝涔熷彲浠ヨ鍦ㄨ繖縐嶄簨鍔℃ā寮忎笅錛屼竴涓猄QL璇彞灝辨槸涓涓簨鍔°?/p>
鏄懼紡浜嬪姟錛屾槸鎸囧湪鑷姩鎻愪氦妯″紡涓嬩互Begin Transaction寮濮嬩竴涓簨鍔★紝浠ommit鎴朢ollback緇撴潫涓涓簨鍔★紝浠ommit緇撴潫浜嬪姟鏄妸浜嬪姟涓殑淇敼姘鎬箙鍖栵紝鍗充嬌榪欐椂鍙戠敓鏂數榪欐牱鐨勬晠闅溿備緥濡備笅闈㈡槸SQL Server涓殑涓涓樉寮忎簨鍔$殑渚嬪瓙銆?/p>
Begin Tran Update emp Set ename=’Smith’ Where empno=7369 Insert Into dept Values(60,’HR’,’GZh’) Commit 闅愬紡浜嬪姟錛屾槸鎸囧湪褰撳墠浼氳瘽涓敤Set Implicit_Transactions On鍛戒護璁劇疆鐨勪簨鍔$被鍨嬶紝榪欐椂浠諱綍DML璇彞(Delete銆乁pdate銆両nsert)閮戒細寮濮嬩竴涓簨鍔★紝鑰屼簨鍔$殑緇撴潫涔熸槸鐢–ommit鎴朢ollback銆?/p>
鍦∣racle涓病鏈塖QL Server鐨勮繖浜涗簨鍔$被鍨嬶紝緙虹渷鎯呭喌涓嬩換浣曚竴涓狣ML璇彞閮戒細寮濮嬩竴涓簨鍔★紝鐩村埌鐢ㄦ埛鍙戝嚭Commit鎴朢ollback鎿嶄綔錛岃繖涓簨鍔℃墠浼氱粨鏉燂紝榪欎笌SQL Server鐨勯殣寮忎簨鍔℃ā寮忕浉浼箋?/p>
涓?浜嬪姟闅旂綰у埆 鍦⊿QL92鏍囧噯涓紝浜嬪姟闅旂綰у埆鍒嗕負鍥涚錛屽垎鍒負錛歊ead Uncommitted銆丷ead Committed銆丷ead Repeatable銆丼erializable錛屽叾涓璕ead Uncommitted涓嶳ead Committed涓鴻鍙ョ駭鍒殑錛岃孯ead Repeatable涓嶴erializable鏄拡瀵逛簨鍔$駭鍒殑銆?/p>
鍦∣racle鍜孲QL Server涓緗簨鍔¢殧紱葷駭鍒殑璇彞鏄浉鍚岀殑錛岄兘浣跨敤SQL92鏍囧噯璇硶錛屽嵆錛?/p>
Set Transaction Isolation Level Read Committed 涓婇潰紺轟緥涓殑Read Committed鍙互琚浛鎹負鍏朵粬涓夌闅旂綰у埆涓殑浠繪剰涓縐嶃?/p>
1.SQL Server涓殑闅旂綰у埆鍙婂疄鐜版満鍒?/p>
鍦⊿QL Server涓彁渚涗簡鎵鏈夎繖鍥涚闅旂綰у埆銆?/p>
涓嬮潰鎴戜滑璁ㄨ鍦⊿QL Server涓紝榪欏嚑縐嶉殧紱葷駭鍒殑鍚箟鍙婂叾瀹炵幇鏂瑰紡銆?/p>
Read Uncommitted錛氫竴涓細璇濆彲浠ヨ鍙栧叾浠栦簨鍔℃湭鎻愪氦鐨勬洿鏂扮粨鏋滐紝濡傛灉榪欎釜浜嬪姟鏈鍚庝互鍥炴粴緇撴潫錛岃繖鏃剁殑璇誨彇緇撴灉灝卞彲鑳芥槸閿欒鐨勶紝鎵浠ュ鏁扮殑鏁版嵁搴撳簲鐢ㄩ兘涓嶄細浣跨敤榪欑闅旂綰у埆銆?/p>
Read Committed錛氳繖鏄疭QL Server鐨勭己鐪侀殧紱葷駭鍒紝璁劇疆涓鴻繖縐嶉殧紱葷駭鍒殑浜嬪姟鍙兘璇誨彇鍏朵粬浜嬪姟宸茬粡鎻愪氦鐨勬洿鏂扮粨鏋滐紝鍚﹀垯錛屽彂鐢熺瓑寰咃紝浣嗘槸鍏朵粬浼氳瘽鍙互淇敼榪欎釜浜嬪姟涓璇誨彇鐨勮褰曪紝鑰屼笉蹇呯瓑寰呬簨鍔$粨鏉燂紝鏄劇劧錛屽湪榪欑闅旂綰у埆涓嬶紝涓涓簨鍔′腑鐨勪袱涓浉鍚岀殑璇誨彇鎿嶄綔錛屽叾緇撴灉鍙兘涓嶅悓銆?/p>
Read Repeatable錛氬湪涓涓簨鍔′腑錛屽鏋滃湪涓ゆ鐩稿悓鏉′歡鐨勮鍙栨搷浣滀箣闂存病鏈夋坊鍔犺褰曠殑鎿嶄綔錛屼篃娌℃湁鍏朵粬鏇存柊鎿嶄綔瀵艱嚧鍦ㄨ繖涓煡璇㈡潯浠朵笅璁板綍鏁板澶氾紝鍒欎袱嬈¤鍙栫粨鏋滅浉鍚屻傛崲鍙ヨ瘽璇達紝灝辨槸鍦ㄤ竴涓簨鍔′腑絎竴嬈¤鍙栫殑璁板綍淇濊瘉涓嶄細鍦ㄨ繖涓簨鍔℃湡闂村彂鐢熸敼鍙樸係QL Server鏄氳繃鍦ㄦ暣涓簨鍔℃湡闂寸粰璇誨彇鐨勮褰曞姞閿佸疄鐜拌繖縐嶉殧紱葷駭鍒殑錛岃繖鏍鳳紝鍦ㄨ繖涓簨鍔$粨鏉熷墠錛屽叾浠栦細璇濅笉鑳戒慨鏀逛簨鍔′腑璇誨彇鐨勮褰曪紝鑰屽彧鑳界瓑寰呬簨鍔$粨鏉燂紝浣嗘槸SQL Server涓嶄細闃葷鍏朵粬浼氳瘽鍚戣〃涓坊鍔犺褰曪紝涔熶笉闃葷鍏朵粬浼氳瘽淇敼鍏朵粬璁板綍銆?/p>
Serializable錛氬湪涓涓簨鍔′腑錛岃鍙栨搷浣滅殑緇撴灉鏄湪榪欎釜浜嬪姟寮濮嬩箣鍓嶅叾浠栦簨鍔″氨宸茬粡鎻愪氦鐨勮褰曪紝SQL Server閫氳繃鍦ㄦ暣涓簨鍔℃湡闂寸粰琛ㄥ姞閿佸疄鐜拌繖縐嶉殧紱葷駭鍒傚湪榪欑闅旂綰у埆涓嬶紝瀵硅繖涓〃鐨勬墍鏈塂ML鎿嶄綔閮芥槸涓嶅厑璁哥殑錛屽嵆瑕佺瓑寰呬簨鍔$粨鏉燂紝榪欐牱灝變繚璇佷簡鍦ㄤ竴涓簨鍔′腑鐨勪袱嬈¤鍙栨搷浣滅殑緇撴灉鑲畾鏄浉鍚岀殑銆?/p>
2.Oracle涓殑闅旂綰у埆鍙婂疄鐜版満鍒?/p>
鍦∣racle涓紝娌℃湁Read Uncommitted鍙奟epeatable Read闅旂綰у埆錛岃繖鏍峰湪Oracle涓笉鍏佽涓涓細璇濊鍙栧叾浠栦簨鍔℃湭鎻愪氦鐨勬暟鎹慨鏀圭粨鏋滐紝浠庤岄伩鍏嶄簡鐢變簬浜嬪姟鍥炴粴鍙戠敓鐨勮鍙栭敊璇侽racle涓殑Read Committed鍜孲erializable綰у埆錛屽叾鍚箟涓嶴QL Server綾諱技錛屼絾鏄疄鐜版柟寮忓嵈澶т笉涓鏍楓?/p>
鍦∣racle涓紝瀛樺湪鎵璋撶殑鍥炴粴孌?Oracle9i涔嬪墠鐗堟湰)鎴栨挙閿孌?Oracle9i鐗堟湰)錛孫racle鍦ㄤ慨鏀規暟鎹褰曟椂錛屼細鎶婅繖浜涜褰曡淇敼涔嬪墠鐨勭粨鏋滃瓨鍏ュ洖婊氭鎴栨挙閿孌典腑錛屽氨鏄洜涓鴻繖縐嶆満鍒訛紝Oracle瀵逛簬浜嬪姟闅旂綰у埆鐨勫疄鐜頒笌SQL Server鎴劧涓嶅悓銆傚湪Oracle涓紝璇誨彇鎿嶄綔涓嶄細闃葷鏇存柊鎿嶄綔錛屾洿鏂版搷浣滀篃涓嶄細闃葷璇誨彇鎿嶄綔錛岃繖鏍峰湪Oracle涓殑鍚勭闅旂綰у埆涓嬶紝璇誨彇鎿嶄綔閮戒笉浼氱瓑寰呮洿鏂頒簨鍔$粨鏉燂紝鏇存柊鎿嶄綔涔熶笉浼氬洜涓哄彟涓涓簨鍔′腑鐨勮鍙栨搷浣滆屽彂鐢熺瓑寰咃紝榪欎篃鏄疧racle浜嬪姟澶勭悊鐨勪竴涓紭鍔挎墍鍦ㄣ?/p>
Oracle緙虹渷鐨勮緗槸Read Committed闅旂綰у埆(涔熺О涓鴻鍙ョ駭鍒殑闅旂)錛屽湪榪欑闅旂綰у埆涓嬶紝濡傛灉涓涓簨鍔℃鍦ㄥ鏌愪釜琛ㄨ繘琛孌ML鎿嶄綔錛岃岃繖鏃跺彟澶栦竴涓細璇濆榪欎釜琛ㄧ殑璁板綍榪涜璇誨彇鎿嶄綔錛屽垯Oracle浼氬幓璇誨彇鍥炴粴孌墊垨鎾ら攢孌典腑瀛樻斁鐨勬洿鏂頒箣鍓嶇殑璁板綍錛岃屼笉浼氳薄SQL Server涓鏍風瓑寰呮洿鏂頒簨鍔$殑緇撴潫銆?/p>
鍦⊿erializable闅旂綰у埆(涔熺О涓轟簨鍔$駭鍒殑闅旂)錛屼簨鍔′腑鐨勮鍙栨搷浣滃彧鑳借鍙栬繖涓簨鍔″紑濮嬩箣鍓嶅凡緇忔彁浜ょ殑鏁版嵁緇撴灉銆傚鏋滃湪璇誨彇鏃訛紝鍏朵粬浜嬪姟姝e湪瀵硅褰曡繘琛屼慨鏀癸紝鍒橭racle灝變細鍦ㄥ洖婊氭鎴栨挙閿孌典腑鍘誨鎵懼搴旂殑鍘熸潵鏈粡鏇存敼鐨勮褰?鑰屼笖鏄湪璇誨彇鎿嶄綔鎵鍦ㄧ殑浜嬪姟寮濮嬩箣鍓嶅瓨鏀句簬鍥炴粴孌墊垨鎾ら攢孌電殑璁板綍)錛岃繖鏃惰鍙栨搷浣滀篃涓嶄細鍥犱負鐩稿簲璁板綍琚洿鏂拌岀瓑寰呫?/p>
鍥?DDL璇彞瀵逛簨鍔$殑褰卞搷 1.Oracle涓璂DL璇彞瀵逛簨鍔$殑褰卞搷 鍦∣racle涓紝鎵цDDL璇彞(濡侰reate Table銆丆reate View絳?鏃訛紝浼氬湪鎵ц涔嬪墠鑷姩鍙戝嚭涓涓狢ommit鍛戒護錛屽茍鍦ㄩ殢鍚庡彂鍑轟竴涓狢ommit鎴栬匯ollback鍛戒護錛屼篃灝辨槸璇達紝DDL浼氳薄濡備笅浼爜涓鏍鋒墽琛岋細 Commit; DDL_Statement; If (Error) then Rollback; Else Commit; End if; 鎴戜滑閫氳繃鍒嗘瀽涓嬮潰渚嬪瓙鏉ョ湅Oracle涓紝DDL璇彞瀵逛簨鍔$殑褰卞搷錛?/p>
Insert into some_table values(‘Before’); Creaate table T(x int); Insert into some_table values(‘After’); Rollback; 鐢變簬鍦∣racle鎵цCreate table璇彞涔嬪墠榪涜浜嗘彁浜わ紝鑰屽湪Create table鎵ц鍚庝篃浼氳嚜鍔ㄥ彂鍑篊ommit鍛戒護錛屾墍浠ュ彧鏈夋彃鍏fter鐨勮琚洖婊氾紝鑰屾彃鍏efore鐨勮涓嶄細琚洖婊氾紝Create table鍛戒護鐨勭粨鏋滀篃涓嶄細琚洖婊氾紝鍗充嬌Create table璇彞澶辮觸錛屾墍榪涜鐨凚efore鎻掑叆涔熶細琚彁浜ゃ傚鏋滄渶鍚庡彂鍑篊ommit鍛戒護錛屽洜涓烘彃鍏efore鍙奀reate table鐨勬搷浣滅粨鏋滃凡緇忓湪涔嬪墠鎻愪氦錛屾墍浠ommit鍛戒護褰卞搷鐨勫彧鏈夋彃鍏fter鐨勬搷浣溿?/p>
2.SQL Server涓璂DL璇彞瀵逛簨鍔$殑褰卞搷 鍦⊿QL Server涓紝DDL璇彞瀵逛簨鍔$殑褰卞搷涓庡叾浠朌ML璇彞鐩稿悓錛屼篃灝辨槸璇達紝鍦―ML璇彞鍙戝嚭涔嬪墠鎴栦箣鍚庯紝閮戒笉浼氳嚜鍔ㄥ彂鍑篊ommit鍛戒護銆?/p>
鍦⊿QL Server 2000涓紝瀵逛簬涓庝笂闈racle鍚屾牱鐨勪緥瀛愶紝鏈鍚庡彂鍑篟ollback鍚庯紝鏁版嵁搴撲細鍥炴粴鍒版彃鍏efore涔嬪墠鐨勭姸鎬侊紝鍗蟲彃鍏efore鍜孉fter鐨勮閮戒細琚洖婊氾紝鏁版嵁琛═涔熶笉浼氳鍒涘緩銆?/p>
濡傛灉鏈鍚庡彂鍑篊ommit鎿嶄綔錛屽垯浼氭妸涓変釜鎿嶄綔鐨勭粨鏋滃叏閮ㄦ彁浜ゃ?/p>
浜?鐢ㄦ埛鏂紑鏁版嵁搴撹繛鎺ュ浜嬪姟鐨勫獎鍝?/p>
鍙﹀錛屽搴斾簬Oracle鐨勭鐞嗗鎴風宸ュ叿SQL*Plus錛屽湪SQL Server 2000涓槸osql錛屼袱縐嶇鐞嗗伐鍏烽兘鏄懡浠よ宸ュ叿錛屼嬌鐢ㄦ柟寮忓強浣滅敤涔熺被浼鹼紝浣嗘槸鍦⊿QL*Plus涓紝鐢ㄦ埛閫鍑鴻繛鎺ユ椂錛屼細鑷姩鍏堝彂鍑篊ommit鍛戒護錛岀劧鍚庡啀閫鍑猴紝鑰屽湪osql涓紝濡傛灉鐢ㄦ埛閫鍑鴻繛鎺ワ紝浼氳嚜鍔ㄥ彂鍑篟ollback鍛戒護錛岃繖瀵逛簬SQL Server鐨勮嚜鍔ㄦ彁浜ゆā寮忔病鏈変粈涔堝獎鍝嶏紝浣嗗鏋滃浜庨殣寮忎簨鍔℃ā寮忥紝鍏跺獎鍝嶆槸鏄捐屾槗瑙佺殑銆傚浜庝袱縐嶆暟鎹簱浜у搧鐨勫叾浠栧鎴風綆$悊宸ュ叿涔熸湁綾諱技鐨勪笉鍚屼箣澶勩?/p>
]]>
鏀寔鍙屽綊灞炵綉緇滃鐏?涓涓垨澶氫釜MGW鍚屾椂榪炴帴鍒頒袱涓狹SCServer涓婏紝榪欎袱涓猄ERVER浜掍負澶囦喚鍏崇郴錛屾甯告儏鍐典笅涓や釜MSCServer鍙互鏄礋鑽峰垎鎷呯殑錛屼篃鍙互鏄畬鍏ㄤ富澶囨柟寮忔彁渚涗笟鍔°傚綋鍏朵腑涓涓狹SCServer鏁呴殰鏃訛紝鍙︿竴涓狹SCServer鑳藉绔嬪嵆鎺ョ鏁呴殰MSCServer涓婄殑璇濆姟錛岃兘瀹屾垚浜哄伐鎴栬嚜鍔ㄥ掓崲銆備粠鑰屾瀬澶у湴鎻愰珮澶у閲忕郴緇熷鐏劇殑鑳藉姏銆傝繖縐嶅弻褰掑睘緗戠粶瀹圭伨鏂規鍦ㄤ腑鍥界Щ鍔═1灞鑾峰緱搴旂敤銆?br>
]]>
鑰屼笉鏄?nbsp;memset(a, 20, 0)
strcpy(buffer, "123");
…
…
memset(a, 0, sizeof(a));
…
}
#include <cstring>
using namespace std;
int main()
{
char a[5];
memset(a,'1',5);
for(int i = 0;i < 5;i++)
cout<<a[i]<<" ";
system("pause");
return 0;
}
鑰岋紝濡備笅紼嬪簭鎯沖惂鏁扮粍涓殑鍏冪礌鍊艱緗垚1錛屽嵈鏄笉鍙鐨?br>#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int a[5];
memset(a,1,5);//榪欓噷鏀規垚memset(a,1,5 *sizeof(int))涔熸槸涓嶅彲浠ョ殑
for(int i = 0;i < 5;i++)
cout<<a[i]<<" ";
system("pause");
return 0;
}
闂鏄細
灝辨槸瀵筧鎸囧悜鐨勫唴瀛樼殑20涓瓧鑺傝繘琛岃祴鍊鹼紝姣忎釜閮界敤ASCII涓?鐨勫瓧絎﹀幓濉厖錛岃漿涓轟簩榪涘埗鍚庯紝1灝辨槸00000001,鍗犱竴涓瓧鑺傘備竴涓狪NT鍏冪礌鏄?瀛楄妭錛屽悎涓璧峰氨鏄?000000010000000100000001錛屽氨絳変簬16843009錛屽氨瀹屾垚浜嗗涓涓狪NT鍏冪礌鐨勮祴鍊間簡銆?/p>
]]>
]]>
#include<stdio.h>
int atoi(const char *str)
{
int value=0;
bool b_plus=true; //鍒ゆ柇絎﹀彿
switch(*str) //榪囨護絎﹀彿
{
case '+':
str++;
break;
case '-':
b_plus=false;
str++;
break;
default:
break;
}
while('\0' != *str)
{
value = (value*10)+(*str-'0');
str++;
}
if(!b_plus)
value=-value;
return value;
}
void main()
{
char str[]="-999";
int value=atoi(str);
printf("The result is:%d\n",value);
}
#include<stdio.h>
void itoa(int value, char *str)
{
if (value < 0) //濡傛灉鏄礋鏁?鍒檚tr[0]='-',騫舵妸value鍙栧弽(鍙樻垚姝f暣鏁?
{
str[0] = '-';
value = 0-value;
}
int i,j;
for(i=1; value > 0; i++,value/=10) //浠巚alue[1]寮濮嬪瓨鏀緑alue鐨勬暟瀛楀瓧絎︼紝涓嶈繃鏄嗗簭錛岀瓑涓嬪啀鍙嶅簭榪囨潵
str[i] = value%10+'0'; //灝嗘暟瀛楀姞涓?鐨凙SCII鍊?鍗?0')灝卞緱鍒拌鏁板瓧鐨凙SCII鍊?br>
for(j=i-1,i=1; j-i>=1; j--,i++) //灝嗘暟瀛楀瓧絎﹀弽搴忓瓨鏀?br>
{
str[i] = str[i]^str[j];
str[j] = str[i]^str[j];
str[i] = str[i]^str[j];
}
if(str[0] != '-') //濡傛灉涓嶆槸璐熸暟錛屽垯闇瑕佹妸鏁板瓧瀛楃涓嬫爣宸︾Щ涓浣嶏紝鍗沖噺1
{
for(i=0; str[i+1]!='\0'; i++)
str[i] = str[i+1];
str[i] = '\0';
}
}
void main()
{
int value = -1212345;
char str[10] = {'\0'}; //璁板緱鎶妔tr鍏ㄥ~鍏呬負'\0'
itoa(value, str);
printf("The result is:%s\n", str);
}
]]>
宸茬煡strcpy鍑芥暟鐨勫師鍨嬫槸錛?
char * strcpy(char * strDest,const char * strSrc);
1.涓嶈皟鐢ㄥ簱鍑芥暟錛屽疄鐜皊trcpy鍑芥暟銆?
2.瑙i噴涓轟粈涔堣榪斿洖char *銆?
瑙h錛?
1.strcpy鐨勫疄鐜頒唬鐮?
char * strcpy(char * strDest,const char * strSrc)
{
if ((strDest==NULL)||(strsrc="/=NULL")) //[1]
throw "Invalid argument(s)"; //[2]
char * strDestCopy=strDest; //[3]
while ((*strDest++=*strSrc++)!='\0'); //[4]
return strDestCopy;
}
閿欒鐨勫仛娉曪細
[1]
(A)涓嶆鏌ユ寚閽堢殑鏈夋晥鎬э紝璇存槑絳旈鑰呬笉娉ㄩ噸浠g爜鐨勫仴澹с?
(B)媯鏌ユ寚閽堢殑鏈夋晥鎬ф椂浣跨敤((!strDest)||(!strSrc))鎴?!(strDest&&strSrc))錛岃鏄庣瓟棰樿呭C璇█涓被鍨嬬殑闅愬紡杞崲娌℃湁娣卞埢璁よ瘑銆傚湪鏈緥涓璫har *杞崲涓篵ool鍗蟲槸綾誨瀷闅愬紡杞崲錛岃繖縐嶅姛鑳借櫧鐒剁伒媧伙紝浣嗘洿澶氱殑鏄鑷村嚭閿欐鐜囧澶у拰緇存姢鎴愭湰鍗囬珮銆傛墍浠++涓撻棬澧炲姞浜哹ool銆乼rue銆乫alse涓変釜鍏抽敭瀛椾互鎻愪緵鏇村畨鍏ㄧ殑鏉′歡琛ㄨ揪寮忋?
(C)媯鏌ユ寚閽堢殑鏈夋晥鎬ф椂浣跨敤((strDest==0)||(strsrc="/=0"))錛岃鏄庣瓟棰樿呬笉鐭ラ亾浣跨敤甯擱噺鐨勫ソ澶勩傜洿鎺ヤ嬌鐢ㄥ瓧闈㈠父閲忥紙濡傛湰渚嬩腑鐨?錛変細鍑忓皯紼嬪簭鐨勫彲緇存姢鎬с?铏界劧綆鍗曪紝浣嗙▼搴忎腑鍙兘鍑虹幇寰堝澶勫鎸囬拡鐨勬鏌ワ紝涓囦竴鍑虹幇絎旇錛岀紪璇戝櫒涓嶈兘鍙戠幇錛岀敓鎴愮殑紼嬪簭鍐呭惈閫昏緫閿欒錛屽緢闅炬帓闄ゃ傝屼嬌鐢∟ULL浠f浛0錛屽鏋滃嚭鐜版嫾鍐欓敊璇紝緙栬瘧鍣ㄥ氨浼氭鏌ュ嚭鏉ャ?
[2]
(A)return new string("Invalid argument(s)");錛岃鏄庣瓟棰樿呮牴鏈笉鐭ラ亾榪斿洖鍊肩殑鐢ㄩ旓紝騫朵笖浠栧鍐呭瓨娉勬紡涔熸病鏈夎鎯曞績銆備粠鍑芥暟涓繑鍥炲嚱鏁頒綋鍐呭垎閰嶇殑鍐呭瓨鏄崄鍒嗗嵄闄╃殑鍋氭硶錛屼粬鎶婇噴鏀懼唴瀛樼殑涔夊姟鎶涚粰涓嶇煡鎯呯殑璋冪敤鑰咃紝緇濆ぇ澶氭暟鎯呭喌涓嬶紝璋冪敤鑰呬笉浼氶噴鏀懼唴瀛橈紝榪欏鑷村唴瀛樻硠婕忋?
(B)return 0;錛岃鏄庣瓟棰樿呮病鏈夋帉鎻″紓甯告満鍒躲傝皟鐢ㄨ呮湁鍙兘蹇樿媯鏌ヨ繑鍥炲鹼紝璋冪敤鑰呰繕鍙兘鏃犳硶媯鏌ヨ繑鍥炲鹼紙瑙佸悗闈㈢殑閾懼紡琛ㄨ揪寮忥級銆傚鎯寵榪斿洖鍊艱偐璐熻繑鍥炴紜煎拰寮傚父鍊肩殑鍙岄噸鍔熻兘錛屽叾緇撴灉寰寰鏄袱縐嶅姛鑳介兘澶辨晥銆傚簲璇ヤ互鎶涘嚭寮傚父鏉ヤ唬鏇胯繑鍥炲鹼紝榪欐牱鍙互鍑忚交璋冪敤鑰呯殑璐熸媴銆佷嬌閿欒涓嶄細琚拷鐣ャ佸寮虹▼搴忕殑鍙淮鎶ゆс?
[3]
(A)蹇樿淇濆瓨鍘熷鐨剆trDest鍊鹼紝璇存槑絳旈鑰呴昏緫鎬濈淮涓嶄弗瀵嗐?
[4]
(A)寰幆鍐欐垚while (*strDest++=*strSrc++);錛屽悓[1](B)銆?
(B)寰幆鍐欐垚while (*strSrc!='\0') *strDest++=*strSrc++;錛岃鏄庣瓟棰樿呭杈圭晫鏉′歡鐨勬鏌ヤ笉鍔涖傚驚鐜綋緇撴潫鍚庯紝strDest瀛楃涓茬殑鏈熬娌℃湁姝g‘鍦板姞涓?\0'銆?
2.榪斿洖strDest鐨勫師濮嬪間嬌鍑芥暟鑳藉鏀寔閾懼紡琛ㄨ揪寮忥紝澧炲姞浜嗗嚱鏁扮殑“闄勫姞鍊?#8221;銆傚悓鏍峰姛鑳界殑鍑芥暟錛屽鏋滆兘鍚堢悊鍦版彁楂樼殑鍙敤鎬э紝鑷劧灝辨洿鍔犵悊鎯熾?
閾懼紡琛ㄨ揪寮忕殑褰㈠紡濡傦細
int iLength=strlen(strcpy(strA,strB));
鍙堝錛?
char * strA=strcpy(new char[10],strB);
榪斿洖strSrc鐨勫師濮嬪兼槸閿欒鐨勩傚叾涓錛屾簮瀛楃涓茶偗瀹氭槸宸茬煡鐨勶紝榪斿洖瀹冩病鏈夋剰涔夈傚叾浜岋紝涓嶈兘鏀寔褰㈠絎簩渚嬬殑琛ㄨ揪寮忋傚叾涓夛紝涓轟簡淇濇姢婧愬瓧絎︿覆錛屽艦鍙傜敤const闄愬畾strSrc鎵鎸囩殑鍐呭錛屾妸const char *浣滀負char *榪斿洖錛岀被鍨嬩笉絎︼紝緙栬瘧鎶ラ敊銆?/div>
]]>