• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-91  評論-137  文章-0  trackbacks-0
            首先我們探討幾個問題:
            CString str = L"";
            str += 'a' + L"a";
            或str += L"a" + 'a';
            分別會得到什么?
            答案是一堆一樣的亂碼.
            這是為什么呢?
            由于運算符的優先級的關系先計算'a' + L"a"或L"a" + 'a'當字符串與單個字符相加時編譯器認為是將指針向后移動'a'(0x61)個字節,最后進入CString的+=運算符重載函數,由于傳入的是一個字符串指針所以函數會將從L"a"+0x61的位置開始到\0結尾的所有字符連接到原字符后.應此也就出現了亂碼的情況.
            解決方法:
            CString str = L"";
            str += CString('a') + L"a";
            或str += CString(L"a") + 'a';
            在做加法運算時都會進入CString的+運算符的重載函數以得到正確的結果.
            posted on 2010-07-11 18:38 lwch 閱讀(2826) 評論(3)  編輯 收藏 引用 所屬分類: NScript

            評論:
            # re: 關于字符串操作的注意事項 2010-07-12 17:19 | jmchxy
            很少會遇到常數那樣使用的吧?
            那個問題直接 str += "aa"; 或 str += L"aa" 都可以了。

            從效率上考慮,連續增加應該會使用:
            str += a;
            str += b;

            而不應該使用 str += a+b;  回復  更多評論
              
            # re: 關于字符串操作的注意事項 2010-07-12 19:24 | 陳梓瀚(vczh)
            (str += L"a") += L'a';  回復  更多評論
              
            # re: 關于字符串操作的注意事項 2010-07-12 23:56 | lwch
            @jmchxy
            比如后面的L"a"在變量a里則表達式成了
            str += 'a' + a;
            稍不注意就會出問題..  回復  更多評論
              
            久久SE精品一区二区| 91精品观看91久久久久久| 国产国产成人久久精品| 日韩精品久久久久久| 久久一本综合| 性欧美丰满熟妇XXXX性久久久| 亚洲va久久久噜噜噜久久狠狠| 精品久久久久久久| 久久综合九色欧美综合狠狠| 亚洲午夜久久久影院伊人| 亚洲国产成人久久精品动漫| 日产精品久久久久久久| 亚洲人成精品久久久久| segui久久国产精品| 亚洲av日韩精品久久久久久a| 女人香蕉久久**毛片精品| 久久九九兔免费精品6| 中文字幕亚洲综合久久| 欧美黑人激情性久久| 久久久久综合中文字幕| 久久国产免费观看精品| 国产成年无码久久久免费| 国产日韩欧美久久| 97久久精品国产精品青草| 国产成人综合久久精品红| 99久久精品九九亚洲精品| 久久大香香蕉国产| 嫩草伊人久久精品少妇AV| 99久久做夜夜爱天天做精品| 国产精品久久久久久久久久免费| 久久精品国产亚洲av麻豆色欲 | 久久国产亚洲精品| 精品无码久久久久久国产| 亚洲国产精品婷婷久久| 久久成人精品视频| 国产精品九九九久久九九| 精品久久久久久成人AV| 精品久久久久久国产| segui久久国产精品| 久久精品一区二区影院| 久久久久综合国产欧美一区二区 |