c语言自学第二十天----深入探究指针下(补前面的)

一. 二级指针

C++中的指针是一个非常重要的概念,而二级指针是指向指针的指针。

  1. 什么是指针? 指针是一个变量,用来存储内存地址。它可以指向其他变量或对象,并通过解引用操作符 "*" 来访问所指向的值。

  2. 什么是二级指针? 二级指针是指向指针的指针,它存储的是指针的地址。通过二级指针可以间接访问指针所指向的值。

  3. 二级指针的声明和初始化 二级指针的声明和初始化与普通指针类似,只是需要多加一个 "*" 符号。例如:

int** p;  // 声明一个二级指针
int* ptr; // 声明一个普通指针

int a = 10;
ptr = &a; // 普通指针指向变量a的地址
p = &ptr; // 二级指针指向指针ptr的地址

4.二级指针的使用 通过二级指针可以访问指针指向的值。例如:

int a = 10;
int* ptr = &a;
int** p = &ptr;

cout << **p << endl; // 输出10,解引用两次可以得到变量a的值

5.二级指针的动态内存分配 使用二级指针可以动态地分配多维数组或多个变量的内存。例如:

int** matrix = new int*[n]; // 动态分配一维指针数组
for (int i = 0; i < n; i++) {
    matrix[i] = new int[m]; // 动态分配二维数组
}

注意在使用完二级指针后,要记得释放内存,避免内存泄漏。释放内存的方法与动态分配相反:

for (int i = 0; i < n; i++) {
    delete[] matrix[i];
}
delete[] matrix;

对于二级指针的运算有:

*ppa 通过对ppa中的地址进行解引用,这样找到的是pa , *ppa 其实访问的就是 pa .

int b = 20;
 *ppa = &b;//等价于 pa = &b;

 **ppa 先通过 *ppa 找到 pa ,然后对pa进行解引用操作:*pa ,那找到的是a.

**ppa = 30;
 //等价于*pa = 30;
 //等价于a = 30;

二. 指针数组

指针数组是指针还是数组? 答案:是数组。是存放指针的数组。

数组我们已经知道整形数组,字符数组。

 

那指针数组是怎样的?

其实一模一样只是存储的类型变成了指针罢了

int* arr3[5];

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值