黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

網站首頁
分類導航
試題中心
下載中心
英語學習
繽紛校園
考試論壇
網站留言
客服中心
 C語言筆記 第九章 指針的安全問題
【字體:
C語言筆記 第九章 指針的安全問題
http://www.top-99.com.cn 來源:考試吧(Exam8.com) 點擊: 更新:2004-8-16
                           第九章 指針的安全問題


看下面的例子:
例十七:
char s='a';
int *ptr;
ptr=(int*)&s;
*ptr=1298;
指針ptr是一個int*類型的指針,它指向的類型是int。它指向的地址就是s的
首地址。在32位程序中,s占一個字節,int類型占四個字節。最后一條語句不但
改變了s所占的一個字節,還把和s相臨的高地址方向的三個字節也改變了。這三
個字節是干什么的?只有編譯程序知道,而寫程序的人是不太可能知道的。也許
這三個字節里存儲了非常重要的數據,也許這三個字節里正好是程序的一條代碼
,而由于你對指針的馬虎應用,這三個字節的值被改變了!這會造成崩潰性的錯
誤。
讓我們再來看一例:
例十八:
1。 char a;
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所指向的存儲區時是不安全的。至于為什么,讀者結合例十七來想一
想,應該會明白的。

文章錄入:蕭雨    責任編輯:蕭雨  
 版權聲明
   如果本網站所轉載內容不慎侵犯了您的權益,請與我們聯系,我們將會及時處理。如轉載本網內容,請注明出處。
 發表評論
關于本站 網站聲明 廣告服務  聯系方式  付款方式  站內導航  客服中心  友情鏈接   
Copyright © 2004-2006 考試吧 (Exam8.com) All Rights Reserved 
中國科學院研究生院中關村園區(北京市海淀區)
主站蜘蛛池模板: 亚洲人人看 | 很黄很色的1000部视频 | 亚洲欧美日韩中文高清一 | 高清午夜毛片 | 波多野结中文字幕在线69视频 | 曰批全过程免费视频免费看 | 成年性午夜免费视频网站不卡 | 男女边摸边吃奶边做视频在线 | 欧美日韩专区 | 天天爽天天爽天天片a久久网 | 久热操 | 亚洲欧美人妖另类激情综合区 | 日韩一区二区中文字幕 | 国产精品一卡二卡三卡 | 成人免费一区二区三区在线观看 | 国产精品天天看特色大片不卡 | 男女一起www免费高清视频 | 91久久线看在观草草青青 | 黄色三级毛片网站 | 亚洲经典激情春色另类 | 露脸国产自产拍在线观看 | 久久成人乱小说 | 亚洲欧美另类国产综合 | 亚洲男女一区二区三区出奶水了 | 欧美色图欧美色图 | 久久国产成人 | 亚洲国产成人久久综合碰 | 日本高清不卡码 | 色老二导航 | 免费网站在线观看国产v片 免费网站看v片在线成人国产系列 | 欧美成人精品免费播放 | 成人伦理在线 | 日本片免费观看一区二区 | 在线成人毛片 | 午夜视频在线网站 | 精品一区二区高清在线观看 | 成人特黄午夜性a一级毛片 成人网18免费软件 成人网免费 | 色戒吃奶动态图 | 91小视频版在线观看www | 78m成人免费视频 | 精品成人一区二区 |