• <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++
            国产精品美女久久久久久2018| 婷婷久久综合| 久久夜色精品国产噜噜噜亚洲AV | 久久久噜噜噜久久熟女AA片| 久久青青草原综合伊人| 亚洲美日韩Av中文字幕无码久久久妻妇 | 久久综合九色综合欧美就去吻| 色诱久久久久综合网ywww| 久久大香香蕉国产| 久久伊人色| 久久精品视频免费| 国产综合久久久久久鬼色| 久久国产福利免费| 久久久久中文字幕| 久久妇女高潮几次MBA| 国内精品久久久久国产盗摄| 久久久久99这里有精品10| 日日狠狠久久偷偷色综合免费| 亚洲国产精品无码成人片久久| 2019久久久高清456| 久久久久亚洲国产| 久久国产视频网| 免费一级做a爰片久久毛片潮| 久久久久亚洲精品天堂| 久久99九九国产免费看小说| 国产亚洲成人久久| 亚洲一本综合久久| 成人综合伊人五月婷久久| AV无码久久久久不卡蜜桃| 久久99热这里只频精品6| 久久久久久亚洲精品不卡| 久久综合久久综合久久| 国产精品岛国久久久久| 国产一区二区三精品久久久无广告| 日本强好片久久久久久AAA| 狠狠色综合网站久久久久久久高清 | 亚洲精品午夜国产VA久久成人| 午夜视频久久久久一区| 狠狠色丁香婷婷久久综合| 区久久AAA片69亚洲| 亚洲中文字幕无码久久精品1 |