門宇 梁拓 李銀琦


摘要:指針是C語言中廣泛使用的一種數據類型, 函數是構成C語言程序的基本單位, 在C語言中, 將指針應用于函數進行程序設計, 使函數的功能更加強大, 函數調用也更加靈活, 程序更加精練和高效。就C語言一維指針、二維指針、與辨析指針數組與數組指針討論。
關鍵詞:C語言; 指針; 結構;分析;
隨著現代技術的發展計算機行業越來越繁榮,而作為計算機標志性工具的編程語言也被廣泛的應用和開發,其中C語言更是成為大學各個專業所常用做通識學習的一門語言。
C語言是結構化的程序設計語言, C語言相對于大部分的語言來說可以對硬件底層進行更深的操作,其中一部分就要歸因于C語言的指針數據類型。
C語言的數據指針類型的使用靈活多變,可與其他數據結構聯合使用,如數組、函數、結構體等。而正確而靈活地運用指針, 可以有效地表示復雜的數據結構, 方便地進行字符串處理, 靈活地實現數組的應用等一系列工作。所以C語言的指針是學習C語言的重要組成部分。
1 C語言常用的指針結構
(1)一維指針變量。
(2) 二維指針內存結構。
(3) 指針數組與數組指針。
2 一維指針變量
一維指針變量內容是該變量類型普通變量內容的地址。
例:int*P,a=1;
*P=a;
int類型指針變量P的內存結構與int普通變量a的關系
圖中每個數據塊的前半部分是數據存儲的內存地址,后半部分是內存的內容。
從圖中我們可以看到指針變量P中存儲了普通變量a的地址內容。
用指針表示一個變量,不僅如此一維指針變量也可以表示一個一維數組。
例:int*P,a[5];
P=a;
圖中指針P中的內容指向a中的數組第一個存儲空間的地址。而當用指針對數組中數據查找時只需將“P+‘數組中要查找的數據所在的序號”,使用即可。
3 二維指針內存結構
二維指針是以線性方式表示一個數組塊。即用二維指針代替二維數組。
例:int**P,a[4][5];
P=a;
如圖中二維指針P指向*P,而*P中每一個內容都會指向一個一維數組。
在內存中二維數組就是以二維指針指向由一維指針組成的數組,而每一個一維指針都指向一個數組,這樣就構成了一個二維數組。
4 指針數組與數組指針
指針數組即指針的數組,是一個一維數組但數組內容中存儲的是指針變量的地址。
數組指針即數組的指針,它是一個指針是指向數組的一個指針。
例:
如圖中數組P就是一個指針數組,數組內存放的是指針變量,而每個指針又指向數組,所以每個指針又稱數組指針。
5 結語
在C語言中使用指針可以進行值傳遞,調用函數,結構體調用,使用指針也會提高程序的運行效率,由于指針只存儲地址而不管其內容是什么,所以后容易賦值、對函數調用,因此C語言具有很好的靈活性。
參考文獻:
[1]譚浩強.C語言程序設計 (第3版) [M].清華大學出版社,2014.
[2]Stephen Prata.c primer plus (第6版) 中文版 [M].人民郵電大學,2017.
[3] 涂玉芬.C語言指針在函數中的運用[J].電腦與信息技術,2019,27(01):69-71.