999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語言中指針探討

2016-11-18 20:14:48李帥于子鈞谷浩榮
藝術科技 2016年9期

李帥 于子鈞 谷浩榮

摘 要:C語言是某一個實體的地址,當我們在使用C語言進行編寫程序的時候,就一定會使用上指針,指針的操作是編寫程序的一個點。如何更好地使用指針,將是我們進行更好的書寫程序的關鍵。指針變量的運用是C語言程序設計的重要核心部分。程序中的數據在內存中的有效讀取及程序執行效率的提高多數情況取決于是否靈活使用指針。本文旨在探索C語言程序設計實踐過程中如何正確操作指針變量,從而方便操作與之關聯的字符串、數組、函數間數據的傳遞,繼而解決C語言程序設計中的許多實際問題。

關鍵詞:C語言;指針;數組;地址

地址:在計算機中,所有的數據都是存放在存儲器中的。一般把存儲器中的一個字節稱為一個內存單元,不同的數據類型所占用的內存單元數不等,如整型量占2個單元,字符量占1個單元等,在前面已有詳細的介紹。為了正確地訪問這些內存單元,必須為每個內存單元編上號。根據一個內存單元的編號即可準確地找到該內存單元。內存單元的編號也叫做地址。嚴格地說,一個指針是一個地址,是一個常量。而一個指針變量卻可以被賦予不同的指針值,是變量。但常把指針變量簡稱為指針。為了避免混淆,我們中約定:“指針”是指地址,是常量,“指針變量”是指取值為地址的變量。定義指針的目的是為了通過指針去訪問內存單元,在C語言中,一種數據類型或數據結構往往都占有一組連續的內存單元。用“地址”這個概念并不能很好地描述一種數據類型或數據結構,而“指針”雖然實際上也是一個地址,但它卻是一個數據結構的首地址,它是“指向”一個數據結構的,因而概念更為清楚,表示更為明確。這也是引入“指針”概念的一個重要原因。因為數組或函數都是連續存放的。通過訪問指針變量取得了數組或函數的首地址,也就找到了該數組或函數。這樣一來,凡是出現數組,函數的地方都可以用一個指針變量來表示,只要該指針變量中賦予數組或函數的首地址即可。這樣做,將會使程序的概念十分清楚,程序本身也精練,高效。

1 指針

所謂的指針,本質上就是地址。指針變量的值,就是地址的值,當取值運算時就是到對應的內存地址上,依照指針類型進行取值。指針是一個地址,指向的是個類型:我們知道,c語言中的類型有int,char,bool(這個不常用),一般我們使用int,char就可以滿足一般的類型需求的,如果對于變量的長度過大,就是用long,float,double,關于各個類型使用的長度問題,可以使用sizeof(int)或者sizeof(long)來查看各個類型,在系統中的小。

而指針就是一個8個字節(64系統)。在C語言中,允許用一個變量來存放指針,這種變量稱為指針變量。因此,一個指針變量的值就是某個內存單元的地址或稱為某內存單元的指針。圖中,設有字符變量C,其內容為“K”(ASCII碼為十進制數75),C占用了011A號單元(地址用十六進數表示)。設有指針變量P,內容為011A,這種情況我們稱為P指向變量C,或說P是指向變量C的指針。嚴格地說,一個指針是一個地址,是一個常量。而一個指針變量卻可以被賦予不同的指針值,是變量。但常把指針變量簡稱為指針。為了避免混淆,我們中約定:“指針”是指地址,是常量,“指針變量”是指取值為地址的變量。定義指針的目的是為了通過指針去訪問內存單元。

指針指向的是地址,地址指向的是內容:

我們需要一個變量,來存儲地址,這個變量的值是地址,但是我們可以通過修改變量的值,來不斷地改變地址,但是,我們如果需要改變該個地址的值的話,就需要,對地址的值進行修改,而不改變地址。

inta=10;

int*p;

p=&a;

*p=11;

a=?

這里我們看到,p是一個變量,我們使用p來存儲變量a的地址,這是,我們使用*p對于這個變量進行賦值,那么a的值最后,是多少呢,結果是11,因為我們使用*p賦值,就相當于a=11,賦值效果一樣的。

指針的指針,是面對于指針的變量:

我們說,指針的指針的時候,就有點不清楚了,到底怎么區分指針和指針的指針呢?

char*p;

char**pr;

pr=&p;

我們這樣看就清楚了一點,char*(*pr);*pr是一個存儲的值為指針的變量,pr就是存儲上個變量地址的變量。整合起來就是,pr是一個存儲的值為指針的地址的變量。這樣,我們就基本,對于指針有一個直接的了解了。既然根據內存單元的編號或地址就可以找到所需的內存單元,所以通常也把這個地址稱為指針。內存單元的指針和內存單元的內容是兩個不同的概念。

2 指針的類型指針的類型

從語法的角度看,你只要把指針聲明語句里的指針名字去掉,剩下的部分就是這個指針的類型。這是指針本身所具有的類型。讓我們看看例一中各個指針的類型:

第一,int*ptr;//指針的類型是int*。

第二,char*ptr;//指針的類型是char*。

第三,int**ptr;//指針的類型是int**。

第四,int(*ptr)[3];//指針的類型是int(*)[3]。

第五,int*(*ptr)[4];//指針的類型是int*(*)[4]。

3 指針指向的類型

從語法上看,你只須把指針聲明語句中的指針名字和名字左邊的指針聲明符*去掉,剩下的就是指針所指向的類型。例如:

第一,int*ptr;//指針所指向的類型是int。

第二,char*ptr;//指針所指向的類型是char。

第三,int**ptr;//指針所指向的類型是int*。

第四,int(*ptr)[3];//指針所指向的類型是int()[3]。

第五,int*(*ptr)[4];//指針所指向的類型是int*()[4]。

4 指針變量與變量指針

常量指針:該指針是一個常量,不可改變,指向某個地址之后就不能改變了,但他所指向的單元是可以改變的,很容易與指針常量弄混,所以一般讀的時候讀成常量指向,從字面上看就是一個常量指向某個地址。指針常量說明該指針所指向的是內容不可改變,但其自身是一個變量,可以改變指向的內容,讀的時候讀成指向常量,從字面上看就是指向某個常量。

5 C語言指針的作用

指針可以直接操作內存,理解為直接操作內存的優點有哪些。

第一,效率更高,這個很容易理解,直接操作內存,效率必然更高。

第二,可以寫復雜度更高的數據結構,這個也好理解,程序員可以操作內存,當然可以寫出靈活、復雜的數據結構。

第三,編寫出簡潔、緊湊、高效的程序。

6 結語

C語言是一種面向過程的程學設計語言,在代碼量超過一定大額數額后程序設計的效率會明顯下降,這是它相對于其他的面向對象的程序設計語言的缺點,但是它的優點是可以比其他的語言更加的接近于硬件底層,這種特性直接導致它可以用來設計計算機操作系統,Unix就是它的產物!所以說C語言有著其他的語言不可替代的功能,既有缺點,也有優點。

參考文獻:

[1] 梁馮蘭.對C語言中指針的探討[J].和田師范專科學校學報,2006,26(5).

[2] 許晶. C語言中指針運用與探索[J].中國科教創新導刊,2013(23).

作者簡介:李帥(1997—),男,湖南衡陽人,沈陽理工大學學生。

于子鈞(1995—),男,遼寧丹東人,沈陽理工大學學生。

谷浩榮(1996—),男,遼寧營口人,沈陽理工大學學生。

主站蜘蛛池模板: 老司机午夜精品视频你懂的| 国产亚洲欧美另类一区二区| 色婷婷综合激情视频免费看| 国产一区二区三区在线精品专区| 四虎影视永久在线精品| 亚洲大尺码专区影院| 亚洲欧美一区二区三区图片| 国产精品lululu在线观看| 中文无码精品a∨在线观看| 成人亚洲国产| 久久成人免费| 全免费a级毛片免费看不卡| 亚洲成aⅴ人片在线影院八| 99久久精彩视频| 久久99精品久久久久久不卡| 国产精品久久国产精麻豆99网站| 国产无码高清视频不卡| 91毛片网| 欧美日韩国产系列在线观看| 日韩精品一区二区三区免费在线观看| 国产成人a在线观看视频| 一级毛片在线播放免费| 国产成人1024精品下载| 香蕉色综合| 欧美日韩在线观看一区二区三区| 国产精品无码制服丝袜| 宅男噜噜噜66国产在线观看| 国产微拍一区二区三区四区| 久久久久久久蜜桃| 在线亚洲天堂| 亚洲有无码中文网| 无码精品国产dvd在线观看9久| 波多野结衣久久高清免费| 欧美日本激情| 片在线无码观看| 538国产在线| julia中文字幕久久亚洲| 亚洲精品无码AV电影在线播放| 婷婷六月色| 激情综合激情| 在线观看视频99| 欧美一级特黄aaaaaa在线看片| 97国产精品视频自在拍| 九九线精品视频在线观看| 亚洲电影天堂在线国语对白| 日韩一区精品视频一区二区| 综合色88| 蜜芽国产尤物av尤物在线看| 国产一区二区三区精品久久呦| 国产欧美日韩另类| 国产亚洲精品精品精品| 欧美精品啪啪| 毛片在线区| 日本在线欧美在线| 亚洲AV无码乱码在线观看裸奔| 日本影院一区| 久久久久青草大香线综合精品| 在线欧美国产| 欧美日韩在线第一页| 国产成人av一区二区三区| 亚洲毛片一级带毛片基地| 亚洲中文字幕日产无码2021| 人人澡人人爽欧美一区| 国产精选自拍| 亚洲精品欧美日本中文字幕| 色有码无码视频| 97视频在线观看免费视频| 国产在线观看第二页| 在线综合亚洲欧美网站| 亚洲日韩精品无码专区| 国产精品极品美女自在线网站| 毛片视频网址| 色视频久久| 欧美一级一级做性视频| 亚洲三级a| 精品无码人妻一区二区| 免费看一级毛片波多结衣| 欧美中文字幕无线码视频| 免费日韩在线视频| 9啪在线视频| 色婷婷丁香| 成人综合在线观看|