c语言形参指针 实参数组,《C语言程序设计》中的指针形参和函数体中数组实参问题的教学研究.pdf...
《C語言程序設計》中的指針形參和函數(shù)體中數(shù)組實參問題的教學研究.pdf
C
C
《CC語言程序設計》中的指針形參和函數(shù)體中數(shù)組實參問題的教學研究
山東理工大學計算機學院 董敬富 淄博市勞動局職業(yè)技能鑒定中心 董京亮
摘要:指針是C 語言中一個重要的概念,也是C語言中一個重要的特色。正確而靈活地
運用指針可以提高程序的運行速度和降低程序的存儲空間。在構(gòu)造鏈表、樹、圖等復雜的數(shù)
據(jù)結(jié)構(gòu),方便地使用字符串、數(shù)組,從被調(diào)函數(shù)得到多個值,甚至可以動態(tài)地分配內(nèi)存等普通程
序所不能實現(xiàn)的功能,也可以有效地表示和實現(xiàn)復雜的數(shù)據(jù)結(jié)構(gòu)。同時指針又是一個十分難
以理解的概念,特別是指針形參和數(shù)組實參傳遞參數(shù)時,由于分不清參數(shù)的性質(zhì),錯誤地使
用指針將使程序中隱藏一些不容易發(fā)現(xiàn)且難以排除的錯誤。本文以淺顯的論述,講述指針形
參和函數(shù)體中數(shù)組實參問題,以期達到拋磚引玉的目的。
關(guān)鍵詞:地址 指針 函數(shù) 形式參數(shù) 實在參數(shù)
中圖分類號:O174 文獻標識碼: A 文章編號:
一、指針概念的理解
計算機的內(nèi)存是以字節(jié)為單位的一片連續(xù)的存儲空間,為了有效的管理和使用每一個空
間,系統(tǒng)給每一個字節(jié)進行編號,這個編號就是該字節(jié)在內(nèi)存的地址。指針是一個特殊的變
量,它存儲的數(shù)值恰恰就是內(nèi)存的這個編號,為了區(qū)別存放“編號”變量和“數(shù)值”變量,
就把“編號”變量形象的稱為指針變量。這個問題不難理解,通常我們會講上午1、2節(jié)在
9號教學樓211教室上C語言,這里的211就是一個教室的編號而已,我們確實把它作地址
用了。在你聽到上述表述時,是不是在腦海中在判斷哪是9號教學樓,哪個是211教室。這
時你的腦海中是否涌現(xiàn)出了一個無形的箭頭指向了“9號教學樓211教室”呢?所以說指針
是地址的形象化稱呼,并非在內(nèi)存中真正有指針存在。而數(shù)值211則可表示重量長度等。int
x=1,*p;此時定義了一個變量x,內(nèi)容為數(shù)值1,一個指針變量p,指向不定空間。在執(zhí)行語句
p=&x;后,變量x的地址送p;也就是說p指向了x。
二、函數(shù)概念的理解
函數(shù)是模塊設計的重要思想,它是把程序中多次用到的程序段取出來給它取上一個名
字,在程序中用到該程序段時只要寫上它的名字就可以了,這個名字表示“做什么”,至于
“怎么做”,則在定義函數(shù)時詳細說明。函數(shù)名是這個程序段的首地址,是一個常量地址(指
針常量)。由于函數(shù)的多次調(diào)用,它對符合量的某一特征的參數(shù)都應該能夠處理,這樣說來
它使用的參數(shù)就不可能用一個具體的、實在的參數(shù)表示,只能用形式上代表著量的某一特征
的參數(shù)來表示,這種參數(shù)就是形式參數(shù)。實在參數(shù)則是調(diào)用函數(shù)時所處理的一個具體的,實
在的值。也就是說函數(shù)的形式參數(shù)重點強調(diào)的是“形式上代表著量的某一特征的參數(shù)”,就
像我們平時所說的“C 語言老師”,這個“老師”可以是張三也可以是李四,但是張三也好
李四也罷,必須符合能教授C 語言這一特征。而實在參數(shù)則強調(diào)的是函數(shù)處理時的具體的
值。上例所講中的“C 語言老師”,在開始具體講授C語言課時的哪個老師,是實在參數(shù)。
簡單講,在定義函數(shù)時的參數(shù)是形式參數(shù),在調(diào)用函數(shù)時的參數(shù)是實在參數(shù)。
Intfun(inta,intb) a,b是形式參數(shù),特征是整形數(shù)
{intc;
c=a+b;
returnc;
}
Main()
{intx,y,z;
Scanf(“%d%d”,&x,&y);
z=fun(x,y); x,y是實在參數(shù),通過scanf函數(shù)輸入的任何整形數(shù)都可以
printf(“%d”,z);
}
三、數(shù)組概念的理解
數(shù)組是C 語言最簡單的一種構(gòu)造類型,每個數(shù)組包含一組具有同一類型的變量,這些
變量在內(nèi)存中占有連續(xù)的存儲單元,使用相同的名字不同的下標來引用不同的單元。inta[10];
計算機在執(zhí)行該語句后會分配10個連續(xù)空間,這10個空間有一個共同的名字叫a,這個a
是數(shù)組的首地址,是一個常量地址值。a+1 等于&a[1]。若要訪問哪一個空間,則分別用
a[0],a[1],a[2]…a[9],來表示。二維數(shù)組則可以理解為一維數(shù)組的每一個元素又是一維數(shù)組,
intarray[3][4] ; 共有3行,每行有4列的元素組成。在存儲時則按行優(yōu)先或列優(yōu)先連續(xù)存儲。
至于array+1 和&array+1 是不同的。array+1 是從array算起,按int[4]類型的大小
總結(jié)
以上是生活随笔為你收集整理的c语言形参指针 实参数组,《C语言程序设计》中的指针形参和函数体中数组实参问题的教学研究.pdf...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 日本晶圆龙头 Rapidus 将在北海道
- 下一篇: TB3_Autorace之交通杆检测