IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 【C语言】二级指针的实例 -> 正文阅读

[C++知识库]【C语言】二级指针的实例

#include "stdio.h"
#include "stdlib.h"

/* 示例1:通过二级指针在函数内部进行内存分配 */ 
void malloc_fun(int **p2)
{
	*p2 = malloc(1);
}

void malloc_p1_test(void)
{
	int *p1 = NULL;
	
	printf("示例1:通过二级指针在函数内部进行内存分配\r\n");
	
	malloc_fun(&p1);	

	if( p1 == NULL )
	{
		printf("分配失败\r\n"); 
	}
	else
	{
		printf("分配成功,p1 = %#x\r\n", p1);
	}	 
} 

/* 示例2:通过二级指针使用函数改变指针的指向 */
int a = 100;
int b = 50;
int *p1 = &a;

void change_p1(int **p2)/* 使用二级指针 */
{
	*p2 = &b;
}

/* 错误的使用方式,使用一级指针,因为本来p1就是一级指针,_p1还是一级指针,只能进行值传递,_p1是p1的拷贝,而不是地址传递
   这就好像是int a传递给int _a,却想要在函数内改变a的值,这是不行的。 
 */
void change_p1_err(int *_p1)
{
	_p1 = &b;
} 

void chang_p1_test(void)
{
	printf("示例2:通过二级指针使用函数改变指针的指向\r\n");
	
	printf("错误的示例:\r\n");
	printf("改变指向之前");
	printf("*p1 = %d\r\n", *p1);
	change_p1_err(p1);
	printf("改变指向之后");
	printf("*p1 = %d\r\n", *p1);
	
	printf("正确的示例:\r\n");
	printf("改变指向之前");
	printf("*p1 = %d\r\n", *p1);
	change_p1(&p1);
	printf("改变指向之后");
	printf("*p1 = %d\r\n", *p1);	
}

int main(void)
{
	malloc_p1_test();
	
	chang_p1_test();
	
	return 0;
}

总结:
通过一级指针在作为实参传入函数时,如果需要在函数内部改变一级指针的指向,函数的形参就需要使用二级指针,如果函数形参使用的是一级指针,就是值传递,值传递在函数里面改变的是形参的值,而不是实参的指向。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-16 19:28:07  更:2021-10-16 19:29:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 19:15:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计