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

首頁 > 學院 > 開發設計 > 正文

指針的深入理解(1)

2019-11-10 17:24:09
字體:
來源:轉載
供稿:網友
       關于指針的知識,我整理了筆記。同時參考了《你不再害怕指針》這篇優秀的文章。從最簡單最基本的指針開始,慢慢深入到復雜。在講解指針之前,我是先了解了c/c++中的內存管理知識。這樣有助于加強對指針的知識的深入的理解。關于內存管理,訪問博客:http://blog.csdn.net/chen1083376511/article/details/54930191----------------------------------------------------------------------------------------------------------------------------------------------概念:指針:一塊內存的地址.指針變量:用來保存某變量的地址的變量兩者關系:指針變量里面存的是某變量的地址一般變量和指針變量的區別:一般變量:存放的是數據本身,訪問方式稱為直接訪問方式。指針變量:存放的是數據的地址,訪問方式稱為間接訪問方式。-----------------------------------------------------------------------------------------------------------------------------------------------關于網友們對指針本身是否存在一個地址的問題,頗有爭議。為了解決這個問題,我在vc6.0環境下編譯運行以下段代碼:
#include<stdio.h>int main(){	int a;	int *p;	PRintf("指針p本身的地址:%d/n",&p);	printf("變量a的地址:%d/n",&a);	a=1;	p=&a;	printf("指針變量p指向變量a的地址:%d/n",p);	printf("指針變量p指向變量a的地址,其地址的值:%d/n",*p);	return 0;}為了便于理解,我假設指針p本身的地址為pppp,變量a的地址為aaaa。用pppp,aaaa表示各自地址,雖然地址書寫不合法,但是便于理解,只能這么干了)輸出結果:指針p本身的地址:pppp變量a的地址:aaaa指針變量p指向變量a的地址:aaaa指針變量p指向變量a的地址,其地址的值:1分析結果:int a;//系統為變量a分配的首地址為aaaa指針變量p定義時,本身占有內存,系統為其分配內存地址pppp.當p=&a(變量a的地址賦值給指針變量p,也就是說指針變量p指向了變量a的地址)時,指針變量里面存放的就是aaaa地址.但是指針p本身的地址仍然是pppp.

--------------------------------------------------------------------------------------------------------------------------------------------

變量a的值,變量a的地址,指針變量p,指針的關系:

指針變量相當于學校這個整體,指針相當于學校的地址。

變量a相當于小王這個人,變量a的值是小王的書本。

變量a的地址是小王的家庭地址。

這樣可以說:

學校記錄了小王的家庭地址。

如果有人想找小王借書,可以通過訪問學校的地址,來尋找學校已經存進去的小王的家庭地址,然后可以

間接訪問小王的家庭地址,可以借到小王家地址里面的書本。

-----------------------------------------------------------------------------------------------------------------------------------------------p,*p,&p的概念:p:p是一個指針變量的名字,表示此指針變量指向的內存地址,如果使用cout<<p來輸出的話,它將是一個16進制數。*p:表示此指針指向的內存地址中存放的內容,一般是一個和指針類型一致的變量或者常量。&p:&p取指針p的地址,&是取地址運算符.定義指針變量p,系統就為其開辟內存,分配指針本身的地址。如果定義一般變量a,那么&a就是系統為其開辟一個內存,分配變量a的地址。------------------------------------------------------------------------------------------------------------------------------------------------指針和常量的問題:
#include<stdio.h>int main(){int a;int *p=(int *)5;//指針變量存儲的是常量5a=1;printf("指針變量p指向某個地址:%d/n",p);return 0;}輸出結果:

指針變量p指向某個地址:5

分析結果:

輸出結果中的指針變量p指向了常量5,因為指針變量把5這個當做了某個地址來存進去。

至于為什么要用(int *)5,下面會講到。

-------------------------------------------------------------------------------------------------------------------------------------------------

對于常量是否占有內存,網友們對此也有些不同的觀點。我認為有些常量(但有些常量不占有內存)是占有內存的。占有內存的常量:字符串常量(字符串常量會放在一個專用的字符串池內存塊中,或者放在靜態數據區中。),const常量(不是真正意義上的常量,要占用內存空間)。

不占有內存的常量:字符型常量,整型常量(浮點型常量占有內存)。

------------------------------------------------------------------------------------------------------------------------------------------------

不占有內存的常量,它存在于常量存儲區這個特殊的存儲區里面。

常量存儲區是一塊比較特殊的存儲區,他們里面存放的是常量,不允許修改(當然,你要通過非正當手段也可以修改)。

還有一種關于一些常量不占有內存的說法:這類不占有內存的常量類似于匯編語言的立即數。讀到一條指令,帶有立即數,把立即數放到寄存器。對于字符型常量(例如'a')和整型常量(例如1,2,3),他們屬于立即數,寫在代碼里面的。他們存放在寄存器上的沒有所謂的內存和地址。因為寄存器和內存地址是兩碼事,沒必要在內存上存放這類不占有內存的數值。字符串常量和字符型常量取地址的區別:C/C++只可以用指針取字符串常量的地址,該類被認為是左值,而其他的字面值常量(literal constant),則被認為是右值,不允許取地址。至于const常量,只能說是一個const修飾的只讀變量,和字面值常量不同。------------------------------------------------------------------------------------------------------------------------------------------------如果把int *p=(int *)5;改成int *p=5或者int *p=&5就會報錯.在這里int *p=&5,有些網友就誤以為常量是沒有地址的,也就是沒有內存的。我認為這種說法是錯誤的。上面我已經講過,有些常量存在于特殊的常量存儲區,或者存在于寄存器中,。常量是不能取到地址的,就算取得到也是沒有意義的。

int *p=5報錯,因為指針變量和常量兩者的數據類型不一樣。一個是int*,一個是const int.

所以int *p=(int *)5;是把普通的常量強制轉換成返回整型數據的指針。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91高清视频在线免费观看| 久久综合色88| 亚洲福利在线看| 欧美一级电影久久| 日本久久久久久| 国产日韩欧美一二三区| 懂色aⅴ精品一区二区三区蜜月| 亚洲人在线视频| 97欧美精品一区二区三区| 日韩av免费看| 成人xvideos免费视频| 中文字幕亚洲一区在线观看| 欧美综合在线第二页| 欧美噜噜久久久xxx| 精品呦交小u女在线| 国产精品成av人在线视午夜片| 久久中国妇女中文字幕| 久久亚洲精品一区| 日韩美女视频免费看| 精品电影在线观看| 欧美激情性做爰免费视频| 国产一区二区三区中文| 欧美日韩国产区| 亚洲精品国产精品国自产观看浪潮| 日韩欧亚中文在线| 亚洲女人天堂av| 久久综合久久八八| 美女av一区二区三区| 欧美视频专区一二在线观看| 97欧美精品一区二区三区| 狠狠色狠狠色综合日日五| 日韩综合中文字幕| 欧美日韩性生活视频| 尤物九九久久国产精品的特点| 欧美精品制服第一页| 亚洲欧美日韩综合| 欧美日韩在线视频一区| 国产99久久精品一区二区永久免费| 青青青国产精品一区二区| 久久免费视频这里只有精品| 国产原创欧美精品| 精品亚洲永久免费精品| 在线播放日韩精品| 成人国内精品久久久久一区| 永久免费看mv网站入口亚洲| 久久国产一区二区三区| 在线观看不卡av| 欧美精品久久久久久久久久| 日本成人免费在线| 日韩高清av一区二区三区| 国产亚洲精品日韩| 精品久久久久久电影| 91九色国产在线| 成人激情在线播放| 亚洲综合日韩中文字幕v在线| 国产精品尤物福利片在线观看| 欧洲一区二区视频| 奇米影视亚洲狠狠色| 亚洲精品www久久久| 中文字幕亚洲综合久久| 久久亚洲国产精品成人av秋霞| 精品亚洲一区二区| 日韩高清电影免费观看完整版| 国产一区二区三区四区福利| 91久久精品美女| 国内精品久久久久伊人av| 红桃av永久久久| 国产成人久久精品| 久久精视频免费在线久久完整在线看| 欧美日韩亚洲国产一区| 国产+成+人+亚洲欧洲| 亚洲精品欧美极品| 欧美成人午夜剧场免费观看| 亚洲一区二区三区在线免费观看| 国产成人拍精品视频午夜网站| 日韩大片免费观看视频播放| 国产aⅴ夜夜欢一区二区三区| 国产精品免费网站| 久久亚洲综合国产精品99麻豆精品福利| 91免费综合在线| 91亚洲国产精品| 少妇高潮 亚洲精品| 2019中文在线观看| 国产精品69久久久久| 亚洲最大福利视频网站| 国产精品久久电影观看| 亚洲激情小视频| 国产做受69高潮| 日韩欧美国产成人| 国产精品一区=区| 成人免费视频xnxx.com| 日韩最新av在线| 亚洲国产精品va在线| 7m精品福利视频导航| 欧美激情亚洲另类| 综合av色偷偷网| 亚洲国产免费av| 亚洲精品国产电影| 亚洲色图在线观看| 91亚洲精品在线观看| 亚洲va欧美va国产综合久久| 久久久久久久一| 国产成人a亚洲精品| 国产亚洲精品日韩| 欧美福利视频网站| 97在线精品视频| 亚洲精品永久免费精品| 九九热精品视频| 欧美激情精品久久久久久| 亚洲精品电影网在线观看| 91久久中文字幕| 高潮白浆女日韩av免费看| 国产精品黄色av| 欧美视频免费在线观看| 中文字幕亚洲一区二区三区五十路| 日本高清久久天堂| 亚洲女人被黑人巨大进入| 久久天天躁狠狠躁老女人| 久久久久久久久91| 蜜臀久久99精品久久久无需会员| 中文字幕v亚洲ⅴv天堂| 国产精品视频地址| 亚洲人成网在线播放| 91精品国产91久久久久久久久| 曰本色欧美视频在线| 久久久亚洲影院| 国产日韩精品在线观看| 亚洲人在线观看| 不卡av在线播放| 久久夜色精品国产欧美乱| 亚洲男人天堂2023| 中文在线资源观看视频网站免费不卡| 欧美高清性猛交| 国产69精品久久久久9| 日韩少妇与小伙激情| 成人午夜两性视频| 国自产精品手机在线观看视频| 欧美精品第一页在线播放| 欧美成人精品一区二区三区| 成人精品网站在线观看| 91精品国产精品| 亚洲欧美日韩精品久久亚洲区| 亚洲片av在线| 亚洲人成网站777色婷婷| 国产精品久久久999| 最好看的2019年中文视频| 国产成人短视频| 九九热这里只有在线精品视| 国产一区二区视频在线观看| 欧美成人精品在线观看| 欧美小视频在线| 91精品久久久久久| 97精品在线视频| 91精品国产沙发| 精品自在线视频| 国产精品稀缺呦系列在线| 日韩免费观看网站| 一本大道香蕉久在线播放29| 国产日韩欧美影视| 久久综合免费视频| 欧美午夜视频在线观看| 菠萝蜜影院一区二区免费| 日韩中文字幕免费| 狠狠躁夜夜躁人人爽天天天天97|