当前位置:首页 » 编程语言 » c语言双指针

c语言双指针

发布时间: 2023-05-31 07:31:51

c语言的单链表在开创内存空间时为什么要用到双重指针

你的意思是这样吗
List *L;
insert(&L);//初始化insert(List **L)
你问的是 初始化者戚中世销 为什么要双重指针吗?

如果是的话,那么意思是,你想通过函数来改变L的值,但是L是指针类型,所以你要改变它的值就要传L的地址进去,因为双重指针的意思就是指向指针的指针,就是指针的地址,那么**L就是指向指针L的地址,那么通过函数调用双重指针首返陵就能改变指针L的值。

道理就是:要传递变量的地址才能使变量的值发生变化.现在的变量是指针型,所以要传指针类型的地址,也就是双重指针。

不知道我理解对了没

Ⅱ C语言中建立动态链表要用双重指针吗那个双重指针有什么作用

举个例吧,
假如一个结构:LinkNode
初始化:Initial(LinkNode **p);//这里就是双指桥高针

那么在调用就这样,
LinkNode *p;
Initial(&p);

原理就茄消晌是,如果你要通过函数来改变某个参数的值,那么就要传该参数的地址进去。
这里p是一个指针,所以要传指针的地址进去,也就是一个指向指针的指针;
初始化函数Initial(LinkNode *(*p));(*p)是指针颤锋,*(*p)就是传指针的地址进去了,意思就这样,不知道你听不听得懂。

不管动态还是静态,只要是要通过函数来改变指针类型数据的值,就要用双重指针。

Ⅲ C语言,声明两个指针

对的 这样写是代表两雹碰闭个指向整吵首形的指针
比较简便的写法可以用 typedef定义源裂
比如
typedef int* Int_P;
Int_P a,b;

Ⅳ C语言结构体双指针疑问

第一个动态分配了若干个struct_name_count*的空间,假设是10,也就是创档培建了一个10个元素的数组,里面存放的是御蠢州指针。第二个是放在循环中的,那么就是循环10次,又为每一个指针元素分配了一个那个结构体的空间。所以总共做的事是,创建了一个指针数组,为每个指针镇蔽分配了一个结构体的空间。

Ⅳ c语言定义双指针

//很简单的程序第一个"搏贺*"表示指针,用来传地址,第二个表示字符串。这个宴虚函数表基祥派示给p的末尾加上"."

int test(char **p)
{
strcat(*p, '.');
}

Ⅵ C语言高手进关于双重指针 多重指针的问题

1、多重指针常用于多维数组或者多维字符串的操作,有时也升纯用于函数参数传递;
2、指针是C语言的一个重要知识点,你可以简单理解为地址。多重指针需要通过多次寻址才能找到实际的值。这里一个示例:
# include<stdio.h>
int main()
{
unsigned int x=0x1234;
unsigned int *p1=NULL;
unsigned int **p2=NULL;
unsigned int ***p3=NULL;

p1=&x;
p2=&p1;
p3=&p2;

printf("\n x=0X%X, &x=:0X%X",x,&x);
printf("\n *p1=0X%X, p1=:0X%X, &p1=:0X%X",*p1,p1,&p1);
printf("\n **p2=0X%X, *p2=:0X%X, p2=:0X%X, &p2=0X%X",**p2,*p2,p2,&p2);
printf("\n***p3=0X%X, **p3=:0X%X, *p3=:0X%X, p3=:迟清0X%X, &p3=:0X%X",***p3,**p3,*p3,p3,&p3);

return 0 ;
}
显示结果:

x=0X1234, &x=:0X6C56C298
*p1=0X1234, p1=:0X6C56C298, &p1=:0X6C56C290
**p2=0X1234, *p2=:0X6C56C298, p2=:0X6C56C290, &p2=0X6C56C288
***p3=0X1234, **p3=:0X6C56C298, *p3=:0X6C56C290, p3=:0X6C56C288, &p3=:0X6C56C280
所有类型变量都可以通过&获得该变量在内存中的地址,从以上示例看出
变量x在内存中的地址为:0X6C56C298
指针变量p1的地址为:0X6C56C290
指针变量p2的地址为:0X6C56C288
指针变量p3的地址为:0X6C56C280
以上变量按照定义先后顺序在内存中从高地址到低地址连续存储的,每个变量占据8个字节空间。
其中p3的值(也就是0X6C56C280这个地址的内存中存放的数据)为p2的地址。
p2的值(也就是0X6C56C288这个地址的内存中存放的数据)为p1的地址。
p1的值(也就是0X6C56C290这个地址的内存中存放的数据)为x的地址。
要取得最终的0x1234这个数据,几重指针前面就有几个*,比如***p3就表示0x1234这个具体的值。只要少吵旦咐一个*,那么获得的就是地址。

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:335
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:32
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:943
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:739
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:803
网卡访问 发布:2025-05-18 03:35:04 浏览:511
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:371