亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C 語言指針概念的詳解

2020-01-26 14:28:02
字體:
來源:轉載
供稿:網友

計算機中所有的數據都必須放在內存中,不同類型的數據占用的字節數不一樣,例如 int 占用4個字節,char 占用1個字節。為了正確地訪問這些數據,必須為每個字節都編上號碼,就像門牌號、身份證號一樣,每個字節的編號是唯一的,根據編號可以準確地找到某個字節。

下圖是 4G 內存中每個字節的編號(以十六進制表示):

我們將內存中字節的編號稱為地址(Address)或指針(Pointer)。地址從 0 開始依次增加,對于 32 位環境,程序能夠使用的內存為 4GB,最小的地址為 0,最大的地址為 0XFFFFFFFF。

下面的代碼演示了如何輸出一個地址:

#include <stdio.h>int main(){ int a = 100; char str[20] = "c.biancheng.net"; printf("%#X, %#X/n", &a, str); return 0;}

運行結果:

0X28FF3C, 0X28FF10

%#X表示以十六進制形式輸出,并附帶前綴0X。a 是一個變量,用來存放整數,需要在前面加&來獲得它的地址;str 本身就表示字符串的首地址,不需要加&。

一切都是地址

C語言用變量來存儲數據,用函數來定義一段可以重復使用的代碼,它們最終都要放到內存中才能供 CPU 使用。

數據和代碼都以二進制的形式存儲在內存中,計算機無法從格式上區分某塊內存到底存儲的是數據還是代碼。當程序被加載到內存后,操作系統會給不同的內存塊指定不同的權限,擁有讀取和執行權限的內存塊就是代碼,而擁有讀取和寫入權限(也可能只有讀取權限)的內存塊就是數據。

CPU 只能通過地址來取得內存中的代碼和數據,程序在執行過程中會告知 CPU 要執行的代碼以及要讀寫的數據的地址。如果程序不小心出錯,或者開發者有意為之,在 CPU 要寫入數據時給它一個代碼區域的地址,就會發生內存訪問錯誤。這種內存訪問錯誤會被硬件和操作系統攔截,強制程序崩潰,程序員沒有挽救的機會。

CPU 訪問內存時需要的是地址,而不是變量名和函數名!變量名和函數名只是地址的一種助記符,當源文件被編譯和鏈接成可執行程序后,它們都會被替換成地址。編譯和鏈接過程的一項重要任務就是找到這些名稱所對應的地址。

假設變量 a、b、c 在內存中的地址分別是 0X1000、0X2000、0X3000,那么加法運算c = a + b;將會被轉換成類似下面的形式:

0X3000 = (0X1000) + (0X2000);

( )表示取值操作,整個表達式的意思是,取出地址 0X1000 和 0X2000 上的值,將它們相加,把相加的結果賦值給地址為 0X3000 的內存

變量名和函數名為我們提供了方便,讓我們在編寫代碼的過程中可以使用易于閱讀和理解的英文字符串,不用直接面對二進制地址,那場景簡直讓人崩潰。

需要注意的是,雖然變量名、函數名、字符串名和數組名在本質上是一樣的,它們都是地址的助記符,但在編寫代碼的過程中,我們認為變量名表示的是數據本身,而函數名、字符串名和數組名表示的是代碼塊或數據塊的首地址。

關于程序內存、編譯鏈接、可執行文件的結構以及如何找到名稱對應的地址,我們將在《C語言內存》和《C語言模塊化開發》專題中深入探討。

 以上就是 對C語言的指針做了詳細介紹,后續繼續補充相關資料,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线观看欧美www| 中文字幕日韩在线视频| 国产精品盗摄久久久| 久久久精品日本| 日韩中文字幕免费视频| 午夜精品三级视频福利| 亚洲精品在线视频| 欧美又大粗又爽又黄大片视频| 国产精品吴梦梦| 欧美麻豆久久久久久中文| 91亚洲精品久久久| 永久免费精品影视网站| www.xxxx欧美| 欧美中文在线免费| 色香阁99久久精品久久久| 国产精品久久久久7777婷婷| 欧美大肥婆大肥bbbbb| 欧美精品福利视频| 国产日韩欧美中文| 国产视频久久网| 精品国产一区二区三区久久狼黑人| 亚洲二区中文字幕| 国产成人久久久精品一区| 国产精品亚洲一区二区三区| 91国产视频在线| 国产精品美乳一区二区免费| 久久国产精品亚洲| 91精品免费看| 亚洲精品永久免费精品| 国产精品9999| 国产精品狠色婷| 色妞色视频一区二区三区四区| 国产精品91久久久| 日韩欧美aⅴ综合网站发布| 日韩电影网在线| 91在线视频一区| 国产精品99久久99久久久二8| 九九久久精品一区| 亚洲免费精彩视频| 亚洲乱码一区av黑人高潮| 91在线无精精品一区二区| 亚洲男女自偷自拍图片另类| 欧美精品一区二区免费| 欧美高清在线播放| 国产精品劲爆视频| 久久久久久中文| 夜夜嗨av一区二区三区四区| 日韩经典第一页| 日韩欧美福利视频| 久久久久久国产精品| 欧美极品在线视频| 日韩欧美精品免费在线| 欧美日韩美女在线观看| 久久精品国产一区二区三区| 亚洲男人天堂2024| 欧美日本高清一区| 国产精品视频大全| 羞羞色国产精品| 久久综合免费视频| 国产精品视频中文字幕91| 色综合色综合久久综合频道88| 热re99久久精品国产66热| 日韩精品一区二区三区第95| 亚洲综合自拍一区| 国产一区二区三区三区在线观看| 国产亚洲视频在线观看| 一本色道久久综合狠狠躁篇的优点| 国产精品成人免费视频| 亚洲第一国产精品| 成人精品在线观看| 精品视频在线导航| 日韩精品中文在线观看| 精品视频在线播放色网色视频| 精品露脸国产偷人在视频| 日本电影亚洲天堂| 久久69精品久久久久久国产越南| 国产欧美 在线欧美| 欧美日韩一区免费| 国产视频丨精品|在线观看| 亚洲欧美国内爽妇网| 亚洲深夜福利网站| 国产盗摄xxxx视频xxx69| 日韩欧美一区二区三区久久| 成人国产在线激情| 国产精品成人在线| 久久成人人人人精品欧| 亚洲最大福利网站| 91精品视频在线播放| 欧美有码在线观看视频| 国产色婷婷国产综合在线理论片a| 日韩av在线直播| 欧美成人免费全部观看天天性色| 欧美一级成年大片在线观看| 欧美精品第一页在线播放| 亚洲精选在线观看| 久久国产精品久久久久| 国产日本欧美一区二区三区在线| 欧美综合国产精品久久丁香| 日韩美女在线观看| 另类图片亚洲另类| 一区二区欧美激情| 成人欧美一区二区三区黑人| 久久97精品久久久久久久不卡| 国产精品激情av电影在线观看| 欧美精品九九久久| 久久久久久有精品国产| 国产成人高潮免费观看精品| 2018日韩中文字幕| 国产成人91久久精品| 亚洲情综合五月天| 色哟哟入口国产精品| 欧美成人精品激情在线观看| 久久九九免费视频| 日韩经典第一页| 国产一区二区三区在线播放免费观看| 欧美日韩国产成人在线| 亚洲日韩中文字幕| 91精品国产高清久久久久久91| 国产97在线观看| 奇门遁甲1982国语版免费观看高清| 国内精品久久久| 国产一区二区三区在线免费观看| 久久久噜久噜久久综合| 久久99久久久久久久噜噜| 国产精品久久久久久久久久| 精品国产老师黑色丝袜高跟鞋| 国产视频精品xxxx| 久久久国产一区| 国产一区二区欧美日韩| 久久久精品电影| 日本三级久久久| 日韩av综合网站| 九九综合九九综合| 欧美性生活大片免费观看网址| 尤物九九久久国产精品的特点| 国产在线观看一区二区三区| 欧美精品一区二区免费| 最新日韩中文字幕| 亚洲品质视频自拍网| 成人免费自拍视频| 国产亚洲一区二区精品| 国产va免费精品高清在线| 国产噜噜噜噜久久久久久久久| 欧美视频在线看| 国产69久久精品成人看| 国产精品嫩草视频| 国产午夜精品视频| 日韩av在线网| 精品久久久精品| 久久久这里只有精品视频| 亚洲精品成人免费| 久久精品久久久久久| 久久亚洲成人精品| 欧美国产第二页| 综合网中文字幕| 国外成人免费在线播放| 日韩欧美在线观看| 九九精品在线观看| 亚洲视频在线视频| 97免费在线视频| 欧美大肥婆大肥bbbbb| 国产精品狼人色视频一区| 欧美极品少妇xxxxⅹ免费视频| 欧洲精品毛片网站|