一级指针和二级指针的对比测试

指针 :指针就是地址

指针变量:存放地址的变量就叫做指针变量

刚开始接触到指针的时候指针最直观的用法就是可以在函数中通过形参传递仍然改变主函数中对应的变量的值。那么二级指针和一级指针的区别其实也是同一个道理,只不过传递的参数改变成为了指针,通过二级指针则可以修改指针变量指向的地址。下边就是具体的例子:

代码的结构目录如下:


头文件head.h的代码实现如下:

```

#include<stdio.h>

#include<stdlib.h>

//用于测使指针的函数

void test();

//用于交换两个值

void exchange(int a,int b);

void exchange1(int *a,int *b);

//用来测试二级指针的函数

void testtwo();

void change(int *p);

void change1(int **p);

```

head.c的实现代码如下:

```

#include"head.h"

void test()

{

int a=1,b=2;

printf("a=%d,\tb=%d\n",a,b);

exchange(a,b);

printf("a=%d,\tb=%d\n",a,b);

exchange1(&a,&b);

printf("a=%d,\tb=%d\n",a,b);

}

void exchange(int a,int b)

{

int temp=a;

a=b;

b=temp;

}

void exchange1(int *a,int *b)

{

int temp=*a;

*a=*b;

*b=temp;

}

void testtwo()

{

int a=3,*p=&a;

printf("p=%d\t*p=%d\n",p,*p);

change(p);

printf("p=%d\t*p=%d\n",p,*p);

change1(&p);

printf("p=%d\t*p=%d\n",p,*p);

}

void change(int *p)

{

int a=6;

p=&a;

}

void change1(int **p)

{

int a=6;

*p=&a;

}

```

main.c的实现代码如下:

```

#include"head.h"

int main()

{

printf("用来测试以及指针的用途:\n");

test();

printf("用来测试二级指针的用途:\n");

testtwo();

return 0;

}

```

运行结果如下:


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容