C语言之二重指针

今天写的一个例子:
在这里插入图片描述运行结果:

在这里插入图片描述

运行环境,64位 ubuntu

二重指针的C语言表示:int  **p,它表示指针的指针,二重指针其实就是指针数组指针。

二重指针一般用的场合:

(1)二重指针指向一重指针的地址。

(2)二重指针指向指针数组的地址。

(3)实践中二重指针用得比较少,大多数都是和指针数组一起用的。

(4)实际编程时有时在函数传参时,为了通过函数内部改变外部的指针变量,通常用二重指针。

举例:

/***********************************二重指针基本用法*********************************************/

#include<stdio.h>

int main()

{

int a = 10;

int *P1;

int **P2;

P1 = &a;

P2 = &P1;

return 0;

}

/**********************************二重指针指向指针数组*****************************************/

#include<stdio.h>

int main()

{

int *a[4];

int **p;

p = a;//注意这里为什么可以这么赋值?因为a是数组首元素的地址,并且a的首元素为int *类型,所以a便是int *类型的地址,因此可以这么赋值

}

/*********************************二重指针改变指针地址***************************************/

#include<stdio.h>

void func(int **p)

{

*p = (int *)0x12345678;

}

int main()

{

int a =10;

int *P = &a;

do somethings();

func(&p)

return 0;

}

/***********************二重指针动态内存分配 *****************************************/
参考:https://blog.csdn.net/Cheatscat/article/details/80307618















发布了91 篇原创文章 · 获赞 160 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/weixin_40204595/article/details/98478732
今日推荐