c语言二维指针

Python017

c语言二维指针,第1张

二维指针就是“指向XX指针的XX指针”,XX表示数据类型

简单地说,如果一个二级指针指向一个一级指针,那么这个二级指针的值就是那个一级指针的地址。就像如果一个一级指针指向一个变量,那么这个一级指针的值就是那个变量的存储地址,这样容易理解。这么推下去三级、四级甚至N级的指针都能明白。不过由于指针的操作既难又危险,容易出错,所以一般少用三级以上的指针。

定义:

数据类型 **指针名;

数据类型 **指针名 = XX类型的指针地址;

使用:

指针名 是这个二维指针 的地址

*指针名 是这个二维指针 所指向的指针(即一维指针) 的地址

**指针名 是这个二维指针 所指向的指针(即一维指针) 所指向的内容

看例子:

#include <iostream>

using namespace std

void main() {

char *s = "Hello"

char **p = &s

cout<<p<<endl<<*p<<endl<<endl

int a = 3

int *b = &a

int **c = &b

cout<<c<<endl<<*c<<endl<<**c<<endl

}

运行结果:

程序中有些问题:

1、函数的定义有错误(参数格式不对);

2、程序中没有调用函数(或者说是调用格式有误)

3、函数中的处理逻辑需要修改(一步一步来,这样容易处理和理解)。

你定义的函数是使用数组作为参数的,数组名本身就是个地址(相当于指针)。

下面在手机上用易历知食软件里的微C程序设计来演示修正后的代码并运行程序,供参考。

手机上修正后的代码如下图:

手机上运行的效果如下图所示: