C语言函数入参 const int* arr, const修饰的是谁,谁无法修改
时间: 2023-09-17 21:14:37 浏览: 90
C语言中const用法浅析.pdf
在 C 语言中,使用 `const` 关键字修饰函数的参数时,表示该参数是一个指向常量的指针。在你提供的例子中,`const int* arr` 表示 `arr` 是一个指向整型常量的指针。这意味着函数内部无法通过 `arr` 修改指向的整型值。
具体来说,使用 `const int* arr` 声明的指针变量 `arr` 是可以修改的,可以指向不同的地址,但是通过 `arr` 解引用修改指向的值是不允许的。例如,下面的代码会导致编译错误:
```c
void foo(const int* arr) {
*arr = 10; // 错误,无法修改指向的值
}
int main() {
int num = 5;
foo(&num);
return 0;
}
```
上述代码中,`foo` 函数的参数 `arr` 被声明为指向整型常量的指针,因此在函数内部无法修改 `arr` 指向的值。
希望能解答你的问题!如果还有其他问题,请随时提问。
阅读全文