數(shù)組定義中對(duì)常量表達(dá)式的要求?
常量表達(dá)式只能是常量或符號(hào)常量,代表數(shù)組元素的個(gè)數(shù)或長度,不允許使用變量。c語言不檢查下標(biāo)越界。
c語言數(shù)組長度是什么意思?
所謂數(shù)組,就是相同數(shù)據(jù)類型的元素按照一定的順序排列的集合,即有限個(gè)相同類型的變量用一個(gè)名字命名,然后用數(shù)字來區(qū)分它們的變量。這個(gè)名字叫做數(shù)組名,數(shù)字叫做下標(biāo)。組成數(shù)組的變量稱為數(shù)組的組成部分、數(shù)組的元素,有時(shí)也稱為下標(biāo)變量。數(shù)組是將幾個(gè)相同類型的變量以有序的形式組織起來,以便于編程處理的一種形式。這些同類數(shù)據(jù)元素的有序集合稱為數(shù)組。
在C語言中使用數(shù)組時(shí),必須首先指定類型。
數(shù)組描述的一般形式是:類型描述符數(shù)組名[常量表達(dá)式],...;其中類型描述符是任何基本數(shù)據(jù)類型或構(gòu)造數(shù)據(jù)類型。陣列名稱是用戶定義的陣列標(biāo)識(shí)符。方括號(hào)中的常量表達(dá)式表示數(shù)據(jù)元素的數(shù)量,也稱為數(shù)組的長度。
數(shù)組的長度是數(shù)組中元素的數(shù)量。
關(guān)于變長數(shù)組(VLA)的問題:原來的C89標(biāo)準(zhǔn)中不允許使用變長數(shù)組,但是在C99標(biāo)準(zhǔn)中增加了對(duì)VLA的支持,但是支持的編譯器不多,也沒有多少人敢用這個(gè)變長數(shù)組,因?yàn)槎褩R绯龅陌踩珕栴},所以在C11標(biāo)準(zhǔn)中規(guī)定為可選函數(shù)。
串和數(shù)組的區(qū)別?
任何數(shù)據(jù)都可以寫入字符數(shù)組中的任何位置,包括0x0,并且字符串的末尾只有0x0。一旦這些數(shù)據(jù)可用,字符串結(jié)束。計(jì)算機(jī)只有二進(jìn)制字節(jié)數(shù)組;字符、字符串、空字符終止符、數(shù)組等。只存在于人類大腦中。
1.字符數(shù)組是指用來存儲(chǔ)字符數(shù)據(jù)的數(shù)組。其定義的一般形式是:char數(shù)組名[數(shù)據(jù)長度]。字符數(shù)組用于存儲(chǔ)字符或字符串,字符數(shù)組中的一個(gè)元素存儲(chǔ)一個(gè)字符,占用內(nèi)存一個(gè)字節(jié)。C語言沒有字符串類型,字符串存儲(chǔ)在字符數(shù)組中。
2.示例:
charc[10];
c[0]I;c[1];c[2]l;c[3]o;c[4]v;c[5]e;c[6];c[7]y;c[8]o;c[9]u;
c被定義為一個(gè)字符數(shù)組,包含10個(gè)元素。
因?yàn)樽址麛?shù)據(jù)是以整數(shù)(ASCII碼)的形式存儲(chǔ)的,所以也可以使用整數(shù)數(shù)組來存儲(chǔ)字符數(shù)據(jù),例如:
intc[10];
但此時(shí)每個(gè)數(shù)組元素占用2個(gè)字節(jié)的存儲(chǔ)單元,浪費(fèi)存儲(chǔ)空間。[1]
字符數(shù)組也可以是二維或多維數(shù)組,例如:
charc[5][10];
也就是二維字符的數(shù)量團(tuán)體。
3.字符串主要用于編程。概念描述、功能解釋、使用細(xì)節(jié)見正文。這里補(bǔ)充一下,字符串類似于存儲(chǔ)中的字符數(shù)組,所以可以提取每一位的單個(gè)元素,比如s"abcdefghij",那么s[1]"a"和s[10]j,而字符串的零位正好是它的長度,比如s[0]。),可以給我們提供很多便利,比如高精度運(yùn)算,每一位都可以轉(zhuǎn)換成一個(gè)數(shù),存儲(chǔ)在一個(gè)數(shù)組中。