[面试题]const与指针
时间: 2023-11-21 11:04:34 浏览: 93
const和指针是C语言中的两个重要概念,它们可以结合使用来实现不同的功能。下面是一些常见的关于const和指针的问题:
1. const与指针的组合有哪些用途?
const可以用来限制指针所指向的变量的值不能被修改,这样可以提高程序的健壮性和可读性。比如:
```c
const int* p; //指向常量的指针,p所指向的值不能被修改
int const* p; //同上,也表示指向常量的指针
int* const p; //常量指针,p指向的地址不能被修改
const int* const p; //常量指针,不能修改p所指向的值和地址
```
2. 如何定义一个指向常量的指针?
可以使用关键字const来定义指向常量的指针。例如:
```c
const int* p; //指向常量的指针,p所指向的值不能被修改
```
3. 如何定义一个常量指针?
可以使用关键字const来定义常量指针。例如:
```c
int* const p; //常量指针,p指向的地址不能被修改
```
4. 如何定义一个指向常量的常量指针?
可以使用关键字const来定义指向常量的常量指针。例如:
```c
const int* const p; //常量指针,不能修改p所指向的值和地址
```
5. 什么是指针常量?
指针常量是一个指针,它的值不能被修改,但是它所指向的变量的值可以被修改。例如:
```c
int a = 10;
int b = 20;
int* const p = &a; //p是一个指针常量,指向a
*p = 30; //合法,修改a的值
p = &b; //非法,无法修改指针p的值
```
6. const修饰函数的参数有什么作用?
const可以用来限制函数参数的值不能被修改。这样可以避免函数在执行过程中修改参数的值,提高程序的健壮性和可读性。例如:
```c
void func(const int* p) //p是一个指向常量的指针,不能修改p所指向的值
{
//...
}
```
阅读全文