C语言中const的用法是什么
时间: 2024-09-13 09:11:43 浏览: 46
在C语言中,`const` 关键字用于定义一个常量,意味着一旦给 `const` 修饰的变量赋值之后,其值就不能再被修改。`const` 可以应用于数据类型的声明中,以防止意外的数据修改,增加程序的健壮性。
`const` 有几种常见的用法:
1. 修饰普通变量:当 `const` 修饰的是一个常量时,通常用来定义编译时常量。
```c
const int a = 10; // 定义了一个不可变的整型常量a,其值为10
```
2. 修饰指针变量:
- 指针指向的内容不变:`const` 修饰指针指向的变量,防止通过指针修改变量的值。
```c
const int *ptr; // 指针可以改变,但是不能通过ptr修改它指向的值
int const *ptr; // 等价于上面的写法,强调指向的值不可变
```
- 指针本身不变:`const` 修饰指针变量,使得指针的指向(地址)不可变,但指针指向的内容可以修改。
```c
int *const ptr = &a; // 指针指向的地址不可变,但可以通过ptr修改a的值
```
- 指针和指向的内容都不变:既不能修改指针的指向,也不能修改指针指向的内容。
```c
const int *const ptr = &a; // 指针和指向的内容都不可以被修改
```
3. 修饰函数参数:在函数参数前使用 `const` 可以防止函数内部意外修改参数的值。
```c
void foo(const int *ptr) {
// ... 函数内部不会修改ptr指向的值
}
```
4. 修饰函数返回值:可以防止函数调用者通过返回值修改不应该修改的值。
```c
const char* get_name() {
static char name[] = "John";
return name;
}
```
阅读全文