在C語言中,const
數組具有以下特性:
const
數組一旦初始化后,其元素值就不能被修改。這意味著你不能通過指針來修改數組元素的值,即使該指針是指向數組的const
指針。const
數組的大小在聲明時就已經確定,并且不能改變。如果你嘗試聲明一個不同大小的const
數組,編譯器將會報錯。const
指針的初始化對象:你可以將整個const
數組const
指針進行初始化。例如,const int a[] = {1, 2, 3}; const int* p = a;
。這里,p
是一個指向const int
的指針,它指向const
數組a
的首元素。sizeof
運算符獲取大小:由于const
數組的大小在編譯時確定,并且不能改變,因此你不能通過sizeof
運算符來獲取const
數組的大小(注意,這里指的是不能通過指向const
數組的指針來獲取大小,因為sizeof
作用于指針時返回的是指針的大小,而不是它所指向的數據的大小)。然而,你可以通過其他方式獲取const
數組的大小,例如使用strlen
函數(如果數組是字符串)或其他適當的算法。但請注意,strlen
函數并不適用于所有類型的const
數組,它只適用于以空字符結尾的字符串。需要注意的是,const
數組的元素可以是const
的,也可以不是。例如,const int a[] = {1, 2, 3};
和int const a[] = {1, 2, 3};
在語法上是等價的,都聲明了一個包含三個整數的const
數組。這兩種聲明方式的區別僅在于const
關鍵字的位置不同,但它們的意義是相同的。