c语言双指针函数,c语言指针型函数

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

1、多重指针常用于多维数组或者多维字符串的操作,有时也用于函数参数传递;

创新互联服务项目包括雷州网站建设、雷州网站制作、雷州网页制作以及雷州网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,雷州网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到雷州省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

2、指针是C语言的一个重要知识点,你可以简单理解为地址。多重指针需要通过多次寻址才能找到实际的值。这里一个示例:

# includestdio.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这个具体的值。只要少一个*,那么获得的就是地址。

在C语言中如何调用双指针函数?

传值给二级指针,需要先定义一个一级指针变量,再把这个指针变量的地址传进去.如:

int *pBigger= bigger;

max( x, y, pBigger);

不能写成:max( x, y, (bigger) )

(bigger)理解上是取两次地址,但bigger是取地址并不会返回一个此地址的变量(指针变量);

c语言定义双指针

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

int test(char **p)

{

strcat(*p, '.');

}


文章题目:c语言双指针函数,c语言指针型函数
文章起源:http://scyanting.com/article/hdicds.html