21xrx.com
2024-12-27 13:25:56 Friday
登录
文章检索 我的文章 写文章
C++中的数组指针、指针数组、指针常量和常量指针
2023-07-03 07:13:47 深夜i     --     --
数组指针 指针数组 指针常量 常量指针 C++

在C++编程中,数组指针、指针数组、指针常量和常量指针是常见的概念。这些概念可能会让初学者感到困惑,但它们都有各自的作用和用法。

1. 数组指针

数组指针是一个指针,指向一个数组。例如:


int arr[5] = 5;

int (*p)[5] = &arr;

在这个例子中,`p`是一个指向长度为5的整型数组的指针,指向的是`arr`数组的地址。可以使用`*p`来引用这个数组,例如`(*p)[0]`即可访问到`arr`数组的第一个元素。

2. 指针数组

指针数组是一个数组,其中每个元素都是一个指针。例如:


int a = 1, b = 2, c = 3;

int *arr[3] = &b;

在这个例子中,`arr`是一个包含三个整型指针的数组,分别指向`a`、`b`和`c`的地址。可以使用`arr[0]`、`arr[1]`和`arr[2]`来访问这些指针。

3. 指针常量

指针常量是一个指针,指向的地址不可更改。例如:


int a = 1;

int * const p = &a;

在这个例子中,`p`是一个指向`a`的整型指针,但`p`的地址不可更改。也就是说,不能让`p`指向其他地址。但可以更改`p`指向地址的值,例如`*p = 2`可以更改`a`的值为2。

4. 常量指针

常量指针是指针指向的地址可以更改,但指向地址的值不可更改。例如:


int a = 1;

const int *p = &a;

在这个例子中,`p`是一个指向`a`的指针,但`p`只能用于读取`a`的值,不能用于更改`a`的值。但是可以更改`p`指向其他地址,例如:


int b = 2;

p = &b;

这个例子中,`p`的值更改为了`b`的地址。

以上就是数组指针、指针数组、指针常量和常量指针的概念和用法。在C++编程中,这些概念经常被使用,理解它们的区别和用法可以帮助我们写出更好的程序。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复