国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

程序設(shè)計(jì)中靜態(tài)變量和指針變量的應(yīng)用探索*

2011-02-02 00:57:18
濰坊學(xué)院學(xué)報(bào) 2011年2期
關(guān)鍵詞:鏈表指針C語(yǔ)言

張 瀟

(吉林大學(xué),吉林 長(zhǎng)春 130012)

算法程序設(shè)計(jì)中會(huì)用到許多變量,正確有效的使用變量能夠提高程序的邏輯性和效率。常用的編程語(yǔ)言C語(yǔ)言中變量從存儲(chǔ)方式上可以分為動(dòng)態(tài)存儲(chǔ)方式變量和靜態(tài)存儲(chǔ)方式變量,動(dòng)態(tài)存儲(chǔ)方式是指在程序運(yùn)行期間根據(jù)需要進(jìn)行動(dòng)態(tài)的分配存儲(chǔ)空間,在函數(shù)調(diào)用開(kāi)始時(shí)分配,函數(shù)運(yùn)行結(jié)束時(shí)釋放,程序運(yùn)行期間函數(shù)被調(diào)用兩次分配給此函數(shù)中動(dòng)態(tài)變量的存儲(chǔ)空間可能是不一樣的。靜態(tài)存儲(chǔ)方式是在程序運(yùn)行期間由系統(tǒng)分配固定的存儲(chǔ)空間。C語(yǔ)言中變量從作用域上可區(qū)分為局部變量和全局變量,全局變量全部以靜態(tài)存儲(chǔ)方式存儲(chǔ),在程序開(kāi)始執(zhí)行時(shí)給全局變量分配存儲(chǔ)區(qū),程序執(zhí)行完畢釋放,在程序執(zhí)行過(guò)程中全局變量占據(jù)固定的存儲(chǔ)單元。局部變量分為靜態(tài)局部變量和動(dòng)態(tài)局部變量,靜態(tài)局部變量是在函數(shù)內(nèi)部用Static聲明的變量,其作用域?yàn)槁暶髯兞康暮瘮?shù)內(nèi)部,但在整個(gè)程序的運(yùn)行期間占據(jù)固定的存儲(chǔ)單元,且變量的初始化是在編譯時(shí)進(jìn)行的。在C語(yǔ)言程序設(shè)計(jì)中,變量的指針就是變量的地址,存放變量地址的變量為指針變量,用來(lái)指向另一個(gè)變量。指針變量同樣分為全局變量和局部變量,局部指針變量包括靜態(tài)局部指針變量和動(dòng)態(tài)指針變量。

1 靜態(tài)局部指針變量的應(yīng)用

靜態(tài)局部指針變量為函數(shù)內(nèi)部用Static聲明的指針變量,其作用域是聲明變量的函數(shù)內(nèi)部,在程序運(yùn)行期間占據(jù)固定存儲(chǔ)單元。靜態(tài)局部指針變量可以用已經(jīng)聲明的靜態(tài)局部變量的地址、全局變量的地址進(jìn)行初始化,但不允許使用動(dòng)態(tài)局部變量的地址和指針變量值初始化。示例程序用creat()函數(shù)創(chuàng)建了動(dòng)態(tài)鏈表,用search(int x)函數(shù)搜索年齡為x的學(xué)生信息并顯示。示例程序變量情況如表1所示,sq是靜態(tài)整形指針變量,用靜態(tài)整形變量n的地址初始化,示例程序中多次運(yùn)行search(int x)函數(shù)可連續(xù)搜索年齡為x的學(xué)生,第一次運(yùn)行搜索出鏈表中第一個(gè)年齡為x的學(xué)生,第二次運(yùn)行搜索出鏈表中第二個(gè)年齡為x的學(xué)生,靜態(tài)指針變量sp在search(int x)函數(shù)第一次運(yùn)行時(shí)取得鏈表頭指針,在搜索過(guò)程中逐次指向鏈表的下一結(jié)點(diǎn),search(int x)函數(shù)運(yùn)行結(jié)束后sp的存儲(chǔ)單元保留,使得search(int x)函數(shù)下次運(yùn)行時(shí)從該結(jié)點(diǎn)繼續(xù)搜索。由于靜態(tài)局部指針變量不允許使用指針變量值初始化,所以在search(int x)函數(shù)中沒(méi)有使用static struct student*sp=head語(yǔ)句初始化sp,而采用了if語(yǔ)句使得sp在search(int x)函數(shù)在第一次運(yùn)行時(shí)取得鏈表頭指針。示例程序如下所示。

表1 示例程序變量情況一覽表

2 使用全局指針變量擴(kuò)充靜態(tài)局部變量的作用域

靜態(tài)局部變量的作用域?yàn)槁暶髟撟兞康暮瘮?shù)內(nèi)部,在整個(gè)程序的運(yùn)行期間占用固定的內(nèi)存單元,該變量在其它函數(shù)中不能使用,但可以利用全局指針變量在其它函數(shù)引用和改變變量占用內(nèi)存單元的值,從而起到擴(kuò)充靜態(tài)局部變量的作用域的作用。在上述示例程序中可以將k聲明為main()函數(shù)中的靜態(tài)局部變量,另外聲明一個(gè)整形全局指針變量qp,利用qp變量根據(jù)需要在search(int x)函數(shù)中改變k的值,程序如下所示。

3 結(jié)束語(yǔ)

高級(jí)語(yǔ)言包括各種類(lèi)型的變量,且變量作用域不同,又有靜態(tài)變量和動(dòng)態(tài)變量的區(qū)分,各種變量的使用方式不同,初始化的要求也不同,正確使用變量是保證編寫(xiě)正確程序的基礎(chǔ),同時(shí)設(shè)計(jì)中合理使用各種變量可以提高編程的效率。

[1]方黨生.基于C語(yǔ)言編程思路的實(shí)踐與探索[J].福建電腦,2007,(7):185-186.

[2]譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2005:155-199.

[3]張福祥.C語(yǔ)言程序設(shè)計(jì)[M].沈陽(yáng):遼寧大學(xué)出版社,2010:175-183.

猜你喜歡
鏈表指針C語(yǔ)言
基于Visual Studio Code的C語(yǔ)言程序設(shè)計(jì)實(shí)踐教學(xué)探索
基于二進(jìn)制鏈表的粗糙集屬性約簡(jiǎn)
偷指針的人
跟麥咭學(xué)編程
基于C語(yǔ)言的計(jì)算機(jī)軟件編程
電子制作(2018年16期)2018-09-26 03:27:08
基于鏈表多分支路徑樹(shù)的云存儲(chǔ)數(shù)據(jù)完整性驗(yàn)證機(jī)制
為什么表的指針都按照順時(shí)針?lè)较蜣D(zhuǎn)動(dòng)
高職高專(zhuān)院校C語(yǔ)言程序設(shè)計(jì)教學(xué)改革探索
基于改進(jìn)Hough變換和BP網(wǎng)絡(luò)的指針儀表識(shí)別
論子函數(shù)在C語(yǔ)言數(shù)據(jù)格式輸出中的應(yīng)用
栖霞市| 泰宁县| 马山县| 日喀则市| 沂南县| 沈阳市| 马龙县| 佛冈县| 建平县| 荥经县| 马边| 南京市| 聂荣县| 琼中| 金山区| 沂水县| 霍邱县| 荆门市| 东乡县| 微山县| 泰顺县| 鄂伦春自治旗| 汕尾市| 扎鲁特旗| 武乡县| 潼关县| 镇平县| 渭南市| 葫芦岛市| 克东县| 藁城市| 三门县| 上林县| 图片| 望城县| 铜梁县| 比如县| 聂荣县| 双流县| 平邑县| 浮山县|