不是inta[] ? 而是例如int a[10]這種。括號(hào)內(nèi)一定要有個(gè)常量數(shù)字。
專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)固陽(yáng)免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000+企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
我們可以這樣定義
#define N 5
int a[N]
這表明了數(shù)組名為a;數(shù)組有5個(gè)元素;分別是a[0]到a[4];
對(duì)于數(shù)組來(lái)說(shuō);數(shù)組是變量的集合,因此數(shù)組也具有與變量相同的數(shù)據(jù)類型和儲(chǔ)存類型。數(shù)組的類型就是它所有的變量的類型。在定義數(shù)組時(shí),應(yīng)在數(shù)組名前對(duì)數(shù)組的類型加以確定。如上面的int a[10];則表明了數(shù)組內(nèi)元素均為整形。
所有當(dāng)表示浮點(diǎn)型可以定義為例如float a[10]。 舉例如下:
擴(kuò)展資料
數(shù)組名是由用戶命名的C語(yǔ)言標(biāo)識(shí)符,要遵循標(biāo)識(shí)符命名規(guī)則。數(shù)組名表示數(shù)組存儲(chǔ)區(qū)域的首地址。數(shù)組的首地址也就是第一個(gè)元素的地址。數(shù)組名是一個(gè)地址常量,不能對(duì)它賦值。
數(shù)組名后是由方括號(hào)括起來(lái)的常量表達(dá)式,不能使用其他括號(hào)
1、通過(guò)函數(shù)的參數(shù)顯示傳遞:
a(int
a)
{
a
=
a+2;
}
b(void)
{
int
b
=
3;
a(b);
}
在函數(shù)a中a作為一個(gè)參數(shù)傳入函數(shù)中進(jìn)行運(yùn)算,那么a就可以算作是a的輸入,然后在程序內(nèi)部a進(jìn)行了運(yùn)算后值變了,那么運(yùn)算后的a又算作是a函數(shù)的輸出。
2、通過(guò)全局變量隱式傳遞:
全局變量你應(yīng)該知道吧,簡(jiǎn)單點(diǎn)說(shuō)就是作用域涵蓋整個(gè)程序的變量(當(dāng)然要看具體情況)。
假設(shè)a為int型全局變量,初始值為1:int
a
=
1;
a()
{
a
=
a
+
2;
}
b()
{
a
=
a
+
3;
}
main()
{
a();
b();
a();
}
通過(guò)main函數(shù)我們可以看到,程序首先執(zhí)行的是函數(shù)a,那么執(zhí)行完函數(shù)a后全局變量a的值由初始值1變成了3,然后又繼續(xù)執(zhí)行函數(shù)b,注意此時(shí)函數(shù)b也是對(duì)a進(jìn)行運(yùn)算,那么此時(shí)全局變量a成了b的輸入,運(yùn)算后a的值為了6,此時(shí)a為b的輸出。那么也就是說(shuō)全局變量a在經(jīng)過(guò)a函數(shù)的改變后作為一個(gè)輸入隱式的傳入了b函數(shù),然后經(jīng)過(guò)b函數(shù)的運(yùn)算又算作是b的輸出。執(zhí)行過(guò)b函數(shù)后程序又遇到了a函數(shù),那么此時(shí)經(jīng)過(guò)b函數(shù)運(yùn)算的a又作為a函數(shù)的一個(gè)輸入了。
可以這樣調(diào)用。
int b=0指的是默認(rèn)參數(shù),調(diào)用時(shí)傳入或不傳入b都行,如果不傳入b的話,那么b的值就是0。
另外注意只有最后面的參數(shù)可以是默認(rèn)參數(shù)。
C語(yǔ)言的變量初始化,就是在定義變量的時(shí)候,賦予一個(gè)初始值。
形式為
type var_name = init_value;
其中init_value就是初始化值了。
類似于
type var_name;
var_name = init_value;
不過(guò),基于編譯器的實(shí)現(xiàn),一般初始化值的方式要比先定義后賦值更高效。另外,有些初始化是必須的。比如常量的定義,必須在定義的時(shí)候賦予初始化值。
或者通過(guò)參數(shù)傳進(jìn)去,如
void Init(stu_handlertus *hdl)
{
hdl-count = 1;
for(i = 0; i 50; ++i)
{
hdl-rtus[i].rtuindex = 0
hdl-rtus[i].a = 0;
hdl-rtus[i].b = 0;
hdl-rtus[i].c = 0;
}
}
調(diào)用
Init( handlertus);
即可。
不過(guò)結(jié)構(gòu):
struct stu_handlertus
{
int count;
struct stu_handlertus rtus[50];
}handlertus;
是錯(cuò)誤的,原因是這一句
struct stu_handlertus rtus[50];
這樣就不知道結(jié)構(gòu)stu_handlertus的大小了。所以上面改為
struct stu_handlertu rtus[50];
兩個(gè)結(jié)構(gòu)名字這么接近,是一個(gè)不好的風(fēng)格。
void InitStack(SqStack *S)
{
int i;
for(i=0;iN;i++)
S-base[i]=0;
S-top=0;
}
C中函數(shù)參數(shù)是按值傳遞,你那樣寫修改的是復(fù)制的副本,本身沒有修改,傳遞指針,間接修改。
其他的函數(shù)也一樣,都需要傳遞指針。