int arr[4]
=;//這裡的4必須是乙個常量
常量定義方式有:
1.巨集定義 #define size 4
此時可以使用為
int arr[
size]=
;
2.列舉
enum size;
3.const修飾: const int size=4;
此時的const修飾的常量不可以用作陣列的常量表示式!!!
這是因為c語言本身並未處理好陣列初始長度,屬於c的bug。
出現時,程式**一定是有錯誤的。陣列下邊越界是乙個常見的情況,其實是記憶體訪問越界了。
在c中字串使用字元陣列來表示。
char arr1=
;//字元陣列,有三個元素
char arr2=
;//表示字串,長度是3
printf
("%s\n"
,arr2)
;
%d——十進位制有符號整數輸出
%u——十進位制無符號整數輸出
%x——十六進製制整數輸出
%s——字串輸出
%c——字元輸出
%p——位址輸出,習慣上使用十六進製制表示
c 中關於輸入字元陣列的一些問題
一 scanf對字串 字元陣列的輸入有 c和 s兩種方式 1.c用來輸入單個字元,它能夠識別空格和換行符並將其儲存到字元陣列中。2.s用來輸入乙個字串,它通過空格和換行來識別乙個字串的結束,也就是說用它輸入到字元陣列的字串是沒有空格的。二 getchar 用來輸入單個字元 1.他可以識別換行符和空格...
c 中關於記憶體的一些問題
void getmemory char p void test void 請問執行test函式會有什麼樣的結果?答 程式崩潰。因為getmemory並不能傳遞動態記憶體,test函式中的str一直都是null。strcpy str,helloworld 將使程式崩潰。解析 該函式中的p是乙個臨時的指...
C中陣列指標的一些問題
1.有乙個二維陣列 int a 3 4 對於a相關的一些指標,具體含義如下 對於一位陣列int a 10 a是陣列首元素的位址,a是整個陣列的位址。所以a 1和 a 1的步長不一樣,前者的步長是4,後者的步長是40。2.定義乙個陣列型別 typedef int myarray 10 myarray ...