設定 EYNY 為首頁  |  加入我的最愛
伊莉討論區
熱門搜尋: 海角七號  NERO  Don't wanna  海賊王  九降風  囧男孩  鷹眼  赤壁 


休閒聊天
學術文化
感情感性
興趣交流
家庭事務
旅遊交流
飲食交流
家族門派
貼圖分享
動漫交流
音樂世界
美容打扮
潮流資訊
影視娛樂
電玩遊戲
連線遊戲
網絡遊戲
交易廣場
下載分享
BT下載區
CB下載區
電腦資訊
數碼產品
手機交流
網站事務
體育運動
時事新聞
上班一族
博彩娛樂
成人話題


 
標題: [求助] 請教一個"\0"與'\0'的問題
max855146

Rank: 2Rank: 2
小學生(200/1000)
潛水  
UID 923227
精華 0
積分 270
帖子 299
潛水 1249 米
閱讀權限 20
註冊 2007-3-12
發表於 2007-12-26 04:01 PM  資料 文集 短消息 
伊莉部落格伊莉交友伊莉聊天伊莉相簿

請教一個"\0"與'\0'的問題

[顯示] [隱藏]
在 Visual C++ 裡面"\0"與'\0'這2種的差別在哪裡還有[\]是什麼?有什麼作用?請各位解我地疑惑
感謝

頂部
playcoo

Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10
贊助會員
潛水  
UID 1641663
精華 0
積分 494
帖子 90
潛水 4222 米
閱讀權限 95
註冊 2007-6-26
發表於 2007-12-26 05:49 PM  資料 文集 短消息 
伊莉部落格伊莉交友伊莉聊天伊莉相簿



QUOTE:
原帖由 max855146 於 2007-12-26 04:01 PM 發表
在 Visual C++ 裡面"\0"與'\0'這2種的差別在哪裡還有是什麼?有什麼作用?請各位解我地疑惑
感謝

簡單描述的話,

'\0'  空字元
"\0" 泛指空字串

\ 代表控制字元

頂部
Lelouchcc

Rank: 1
幼兒生(0/200)
潛水  
UID 4168610
精華 0
積分 150
帖子 56
潛水 206 米
閱讀權限 10
註冊 2008-5-10
發表於 2008-7-14 09:05 PM  資料 文集 短消息 
維克斯討論區

正如上面的解釋
'\0'  空字元
"\0" 泛指空字串

而且<' '> 系統不會有一個auto 的 null 分配 因為 '\0'  空字元
而且<" "> 系統會有一個auto 的 null 分配 因為 "\0" 泛指空字串

頂部
daviddr

Rank: 2Rank: 2
小學生(200/1000)
潛水  
UID 4114704
精華 0
積分 590
帖子 594
潛水 762 米
閱讀權限 20
註冊 2008-5-3
來自 Taiwan
發表於 2008-7-15 12:30 AM  資料 文集 短消息 
維克斯討論區

\x 是指將 x 映射成 ASCII 或其他指定碼表中索引為 x 的字元。
'\0' 一般被編譯成 .asm 中的常數定字,成為組語指令的「一部份」。

"\0" 則佔有 2 個字元碼寬,位於 Stack 常數保護區中,
其 asm code 視被 assign 的對象以及編譯器類型而有所不同,
這是 Visual Studio 2008 的實作方法:(未完全最佳化)


    char b,ch = '0';
0041242E  mov         byte ptr [ch],30h

    char a[] = "\0";
00412432  mov         ax,word ptr [string "\0" (428978h)]
00412438  mov         word ptr [a],ax

    char *p = "\0";
0041243C  mov         dword ptr [p],offset string "\0" (428978h)
    char *c;

    c = a;
00412443  lea         eax,[a]
00412446  mov         dword ptr [c],eax

    c = p;
00412449  mov         eax,dword ptr [p]
0041244C  mov         dword ptr [c],eax

    b = ch;
0041244F  mov         al,byte ptr [ch]
00412452  mov         byte ptr ,al


'\0' 成為定字 0x30,可直接編成機器碼:C6 45 EF 30
此處,array 的配置較 pointer 繁瑣,多了 3 Byte:
     array 機器碼   :66 A1 78 89 42 00 66 89 45 E0
     pointer 機器碼:C7 45 D4 78 89 42 00
但使用上能以較快的微指令來實作 (lea 一般占 1-cycle,
可勝出大部分 mov 家族) ,故速度較快。

[ 本帖最後由 daviddr 於 2008-7-15 01:25 AM 編輯 ]

頂部
1024800

Rank: 2Rank: 2
小學生(200/1000)
潛水  
UID 597787
精華 0
積分 249
帖子 137
潛水 -26 米
閱讀權限 20
註冊 2006-12-19
發表於 2008-7-19 11:21 PM  資料 文集 短消息 
伊莉部落格伊莉交友伊莉聊天伊莉相簿

\是跳脫字元
在\後的是要輸出的
如:\'就是輸出'
      \"就是輸出"
還有很多種用法

而"\0"和'\0'
用雙引號",會補一個null就是字串結尾字元。
而單引號',在字串最後不會補入字串結尾字元。

頂部
 




當前時區 GMT+8, 現在時間是 2008-10-7 09:18 PM

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.120056 second(s), 6 queries , Gzip enabled

清除 Cookies - 聯繫我們 - 廣告查詢 [威旭代理] - 伊莉討論區 - Archiver
重要聲明:本討論區是以即時上載留言的方式運作,伊莉討論區對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。伊莉討論區有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。