數組定義中對常量表達式的要求?
常量表達式只能是常量或符號常量,代表數組元素的個數或長度,不允許使用變量。c語言不檢查下標越界。
c語言數組長度是什么意思?
所謂數組,就是相同數據類型的元素按照一定的順序排列的集合,即有限個相同類型的變量用一個名字命名,然后用數字來區分它們的變量。這個名字叫做數組名,數字叫做下標。組成數組的變量稱為數組的組成部分、數組的元素,有時也稱為下標變量。數組是將幾個相同類型的變量以有序的形式組織起來,以便于編程處理的一種形式。這些同類數據元素的有序集合稱為數組。
在C語言中使用數組時,必須首先指定類型。
數組描述的一般形式是:類型描述符數組名[常量表達式],...;其中類型描述符是任何基本數據類型或構造數據類型。陣列名稱是用戶定義的陣列標識符。方括號中的常量表達式表示數據元素的數量,也稱為數組的長度。
數組的長度是數組中元素的數量。
關于變長數組(VLA)的問題:原來的C89標準中不允許使用變長數組,但是在C99標準中增加了對VLA的支持,但是支持的編譯器不多,也沒有多少人敢用這個變長數組,因為堆棧溢出的安全問題,所以在C11標準中規定為可選函數。
串和數組的區別?
任何數據都可以寫入字符數組中的任何位置,包括0x0,并且字符串的末尾只有0x0。一旦這些數據可用,字符串結束。計算機只有二進制字節數組;字符、字符串、空字符終止符、數組等。只存在于人類大腦中。
1.字符數組是指用來存儲字符數據的數組。其定義的一般形式是:char數組名[數據長度]。字符數組用于存儲字符或字符串,字符數組中的一個元素存儲一個字符,占用內存一個字節。C語言沒有字符串類型,字符串存儲在字符數組中。
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被定義為一個字符數組,包含10個元素。
因為字符數據是以整數(ASCII碼)的形式存儲的,所以也可以使用整數數組來存儲字符數據,例如:
intc[10];
但此時每個數組元素占用2個字節的存儲單元,浪費存儲空間。[1]
字符數組也可以是二維或多維數組,例如:
charc[5][10];
也就是二維字符的數量團體。
3.字符串主要用于編程。概念描述、功能解釋、使用細節見正文。這里補充一下,字符串類似于存儲中的字符數組,所以可以提取每一位的單個元素,比如s"abcdefghij",那么s[1]"a"和s[10]j,而字符串的零位正好是它的長度,比如s[0]。),可以給我們提供很多便利,比如高精度運算,每一位都可以轉換成一個數,存儲在一個數組中。