例子如下:
int sum(const int ar[], int n)
const并非要求原始数组要是常量,而是让该函数将传进来的原始数组当成常量不做任何修改。当函数中对原始数组进行修改时,就会报错。
若是希望通过该函数对原始数组进行修改,就不需要加const。如下:
int sum(int ar[], int n)
此外,int sum(int ar[], int n)与void sum(int ar[], int n)区别在于,是否有采用return机制,即是否有返回值。
- #define months 12
-
- const int days[months] = {31,28,31,30,31,30,31,31,30,31,30,31};
- double rates[3] = {10,12.2,14.5};
-
- const double locked[3] = {11.0, 12.2, 13.3};
-
- const double *pt = rates;
-
- *pt = 5; //不允许
-
- pt = &rates[2]; //不允许
-
- pt = locked; //不允许
-
- rates[0] = 5;
- double rates[3] = {10,12.2,14.5};
-
- double * const pt = rates;
-
- pt = &rates[2]; //不允许
-
- *pt = 5;
最后,const指针与指向const的指针可以结合使用,表示该指针既不能修改其指向的地址,也不能修改其指向地址上的值。
const double * const pt;