• <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>

            Xiao.Zhu C++

            Xiao.Zhu C++

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              29 隨筆 :: 14 文章 :: 17 評論 :: 0 Trackbacks
            看下面的例子: ?
            例十七:?
            chars='a';?
            int*ptr;?
            ptr=(int*)&s;?
            *ptr=1298;?
            指 針ptr是一個int*類型的指針,它指向的類型是int。它指向的地址就是s的首地址。在32位程序中,s占一個字節,int類型占四個字節。最后一條 語句不但改變了s所占的一個字節,還把和s相臨的高地址方向的三個字節也改變了。這三個字節是干什么的?只有編譯程序知道,而寫程序的人是不太可能知道 的。也許這三個字節里存儲了非常重要的數據,也許這三個字節里正好是程序的一條代碼,而由于你對指針的馬虎應用,這三個字節的值被改變了!這會造成崩潰性 的錯誤。?
            讓我們再來看一例:?
            例十八:?
            1。chara;?
            2。int*ptr=&a;?
            ...?
            ...?
            3。ptr++;?
            4。*ptr=115;?
            該 例子完全可以通過編譯,并能執行。但是看到沒有?第3句對指針ptr進行自加1運算后,ptr指向了和整形變量a相鄰的高地址方向的一塊存儲區。這塊存儲 區里是什么?我們不知道。有可能它是一個非常重要的數據,甚至可能是一條代碼。而第4句竟然往這片存儲區里寫入一個數據!這是嚴重的錯誤。所以在使用指針 時,程序員心里必須非常清楚:我的指針究竟指向了哪里。在用指針訪問數組的時候,也要注意不要超出數組的低端和高端界限,否則也會造成類似的錯誤。?
            在 指針的強制類型轉換:ptr1=(TYPE*)ptr2中,如果sizeof(ptr2的類型)大于sizeof(ptr1的類型),那么在使用指針 ptr1來訪問ptr2所指向的存儲區時是安全的。如果sizeof(ptr2的類型)小于sizeof(ptr1的類型),那么在使用指針ptr1來訪 問ptr2所指向的存儲區時是不安全的。至于為什么,讀者結合例十七來想一想,應該會明白的。
            posted on 2007-03-12 10:47 Xiao.Zhu 閱讀(182) 評論(0)  編輯 收藏 引用 所屬分類: C/C++
            国产成人无码久久久精品一| 久久精品国产久精国产果冻传媒| 国产亚洲精品久久久久秋霞| 2021久久精品免费观看| 97精品伊人久久久大香线蕉 | 久久国产视屏| 无码国内精品久久综合88| 久久A级毛片免费观看| 99久久精品免费观看国产| 久久久无码精品亚洲日韩蜜臀浪潮 | www亚洲欲色成人久久精品| 欧美日韩精品久久久久| 99久久免费国产精品热| 最新久久免费视频| 久久国产乱子精品免费女| 久久精品桃花综合| 日韩精品久久久久久| 久久久久国产精品人妻| 精品久久久久久无码中文字幕| 久久香综合精品久久伊人| 日韩十八禁一区二区久久| 香蕉久久夜色精品国产小说| 日韩精品久久久久久免费| 亚洲人成无码久久电影网站| 国产成人综合久久精品尤物| 久久久久亚洲av无码专区喷水 | 国产精品久久自在自线观看| 久久精品综合网| 久久婷婷是五月综合色狠狠| 久久久亚洲精品蜜桃臀 | 久久亚洲精品无码播放| 久久精品一区二区| 国产情侣久久久久aⅴ免费| 日韩人妻无码精品久久久不卡| 久久久这里只有精品加勒比| 久久久精品久久久久特色影视| 国产福利电影一区二区三区久久老子无码午夜伦不 | 伊人丁香狠狠色综合久久| 久久九九亚洲精品| 99久久精品国产一区二区蜜芽| 久久99精品国产99久久|