3、到形參數(shù)組名,也就是說,形參數(shù)組并不在內(nèi)存中重新申請(qǐng)數(shù)組的空間,而是和實(shí)參數(shù)組共占存儲(chǔ)單元。多維數(shù)組名作為數(shù)組參數(shù)多維數(shù)組元素也可以作為數(shù)組的參數(shù)多維數(shù)組名作為數(shù)組的參數(shù),在被調(diào)用函數(shù)中對(duì)形參數(shù)組進(jìn)行定義時(shí)可以指定每一維的大小,也可以省略第一維的大小說明。(不能省略第二維)(hanshu_009)實(shí)參為二維數(shù)組名形參定義二維數(shù)組的維數(shù)及每一維的大小,可以缺省第一維的大小#include"stdio.h"main(){inta[3][3]={1,1,1,1,1,1,1,1,1};ints(inta[][3]
4、);printf("sum=%d",s(a));}ints(inta[][3]){intsum=0;inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==j
5、
6、i+j==2)sum+=a[i][j];return(sum);}變量存儲(chǔ)屬性變量都是有類型的,數(shù)據(jù)類型是變量的運(yùn)算屬性的抽象,決定了該變量的取值范圍和可以施加的運(yùn)算種類。變量的可用域:一個(gè)變量在程序的哪個(gè)范圍內(nèi)是可以使用的。變量的生存期:變量什么時(shí)候生成以及什么時(shí)候被撤消。變量的存儲(chǔ)區(qū):變量存儲(chǔ)在哪種類型
7、的存儲(chǔ)器中以及用什么機(jī)制進(jìn)行存儲(chǔ)。變量的可用域和生存期全局/外部變量是在函數(shù)之外定義的變量,它的有效范圍是從定義它的地方開始,到整個(gè)程序結(jié)束的任何地方。局部/內(nèi)部變量在一個(gè)程序塊(用一對(duì)花括號(hào)括起的語句塊)或一個(gè)函數(shù)內(nèi)定義的變量,只在本塊或本函數(shù)內(nèi)有效,這種變量就是局部變量。a,b的有效范圍c的有效范圍main(){inta,b;……{intc;c=a+b;……}……}(hanshu_010)所以在main()里不能對(duì)變量c進(jìn)行引用。變量c是在函數(shù)fun內(nèi)部定義的,它就只在該函數(shù)內(nèi)部有效fun(inta,
8、intb){intc;c=a>b?a:b;returnc;}main(){inta=7,b=10;c=fun(a,b);printf("max=%d",c);}intc;c=fun(a,b);在函數(shù)fun()中,雖然沒有定義變量a,b,但由于它們定義在程序的最前面,是全程變量,凡是在定義該變量的后面定義的函數(shù)均可以引用它們。#include“stdio.h”inta=3,b=5;/*在函數(shù)體外定義的變量*/Voidmain(){voidfun();printf(“a=%d,b=%d”,a,b);f
9、un();printf(“a=%d,b=%d”,a,b);}voidfun(){intc;c=a;a=b;b=c;}例hanshu_011交換兩個(gè)變量的值在一個(gè)文件內(nèi)聲明外部變量:main(){…}voidgx(){…}intx,y;voidgy();{…}用extern聲明外部變量,用以擴(kuò)充外部變量的作用域。externintx,y;x,y原作用域x,y新的作用域還可用它在不同的程序中使用,如在file1.c中引用file2.c中定義的變量x,y。變量的存儲(chǔ)類型變量的存儲(chǔ)類型register:寄存器
10、類型auto:自動(dòng)型(缺省的都是auto型)static:靜態(tài)型自動(dòng)變量[auto]數(shù)據(jù)類型變量名[=初值表達(dá)式],…;不作特殊說明的變量都是自動(dòng)變量。它用之則建、用完即撤,僅在函數(shù)體內(nèi)或復(fù)合語句內(nèi)建立和有效,存儲(chǔ)在內(nèi)存的動(dòng)態(tài)數(shù)據(jù)區(qū)中。程序一進(jìn)入main()函數(shù),變量x就被創(chuàng)建,當(dāng)程序運(yùn)行到此局部范圍內(nèi)(即花括號(hào)內(nèi))時(shí)創(chuàng)建,用完即撤消,即釋放變量。當(dāng)程序運(yùn)行到函數(shù)prt()內(nèi)部時(shí),變量x才被創(chuàng)建,離開函數(shù)時(shí),就被撤消Voidm