C中關於陣列的一些問題

2021-09-28 14:54:04 字數 672 閱讀 8921

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 ...