跳到主要内容

简述指针和 const 的用法 ?

参考答案:

指针和const是C和C++编程中非常重要的概念。下面是对它们的简要描述和用法:

指针

指针是一种变量类型,其值为另一个变量的地址。换句话说,指针指向存储数据的内存位置。在C和C++中,你可以使用指针来间接访问、修改和操作内存中的数据。

这里有一些基本的指针用法:

int x = 10;  // 定义一个整数变量x
int* p = &x;  // 定义一个指向整数的指针p,并将其指向x的地址

*p = 20;  // 通过指针p修改x的值
cout << x;  // 输出20,因为x的值已经被修改

const

const关键字用于声明一个只读的变量,即该变量的值在初始化后不能被修改。

这里有一些基本的const用法:

const int x = 10;  // 定义一个只读的整数变量x
x = 20;  // 这将引发编译错误,因为x是一个const变量,其值不能被修改

指针和const的结合

你可以将const和指针结合起来,以创建指向常量的指针或常量指针。

  • 指向常量的指针:这种指针可以指向一个常量,但不能通过这个指针修改该常量的值。
const int* p = &x;  // 定义一个指向常量的指针p,可以指向x,但不能通过p修改x的值
*p = 20;  // 这将引发编译错误,因为p是一个指向常量的指针
  • 常量指针:这种指针的值(即它所指向的地址)不能被修改,但可以通过这个指针修改它所指向的值(如果它不是指向一个常量的话)。
int x = 10;
int* const p = &x;  // 定义一个常量指针p,其值(即所指向的地址)不能被修改
p = &y;  // 这将引发编译错误,因为p是一个常量指针
*p = 20;  // 这是合法的,因为p指向的是一个可以被修改的变量x
  • 指向常量的常量指针:这种指针既不能修改它所指向的值,也不能修改它所指向的地址。
const int x = 10;
const int* const p = &x;  // 定义一个指向常量的常量指针p
*p = 20;  // 这将引发编译错误,因为p指向一个常量
p = &y;  // 这也将引发编译错误,因为p是一个常量指针

这些只是指针和const的基础用法,它们在复杂的程序中可以有更广泛的应用。