一级指针, 二级指针
一级指针
通常用作,函数的输入参数,因为一级指针作为函数参数,在调用的时候,实参和形参是不同的内存空间,只是,这个内存空间存放的指针指向的是同一块地址 ,所以形参在函数执行中可以访问实参指向的内存空间,但是形参的指向的改变并不能影响实参。 总结一句话“一级指针做函数参数, 在函数内做形参做重新指向并 不会影响实参的指向”
一级指针应用需要注意的:①、不要在函数中,改变形参的指向来达到改变实参指向的效果,因为形参和实参只是两个指向同一空间的不同的指针。 ②、因为形参和实参指向的是同一空间,所以可以在形参中改变其指向空间的值,如此实参指向的空间地址也发生改变。
从上面的运行结果可以看出,在pointer1 函数中改变形参p的指向,并不会改变实参p的指向。所以输入的值是一堆脏数据。
但是,进行如下的修改之后,看看运行的效果。
修改之后的运行结果,从代码的改动可看出 pointer1函数中修改的不是形参指针的指向,而是修改形参指针指向的空间的内容。这样就能达到一级指针做函数返回值的效果。
二级指针
通过二级指针,可以方便的通过改变形参的指向,来达到改变实参的指向的目的。
打印的结果是20。
总结:
一级、二级指针都可以用作函数的返回值,使用一级指针作为函数参数的返回值,需要在调用函数之前申请内存空间,方便在函数中对该内存空间赋值,达到将函数的返回结果传出来的目的。 使用二级指针,无需申请内存空间,因为在函数内直接改变形参的指向就可以改变实参的指向, 指向的内存空间,只需要在函数内部申请即可(栈空间不可,因为栈空间用完即被释放,无法返回出来,可以使用动态内存分配)。
学习的文章 http://blog.csdn.net/majianfei1023/article/details/46629065
一级指针, 二级指针相关推荐
- C 结构体嵌套一级指针 二级指针 动态分配内存
https://blog.csdn.net/xielinhua88/article/details/51364623 点击打开链接 #define _CRT_SECURE_NO_WARNINGS #i ...
- C++一级与二级指针基础详解
指针可以指向一份普通类型的数据,例如 int.double.char 等,也可以指向一份指针类型的数据,例如 int *.double *.char * 等. 如果一个指针指向的是另外一个指针,我们就 ...
- 【指针】一级指针二级指针知识点梳理
目录 一.普通指针(一级) 1.定义 2.指针变量和普通变量的异同点 3.使用: 4.指针字节大小 5.习题练习 总结 6.指针的好处 总结 7.指针与引用 8.指针与const Q& ...
- 指针的指针(二级指针)本质
可以指向一份普通类型的数据,例如 int.double.char 等,也可以指向一份指针类型的数据,例如 int *.double *.char * 等. 如果一个指针指向的是另外一个指针,我们就称它 ...
- C语言指针--二级指针
文章目录 前言 一.什么是二级指针 二.二级指针的使用 1.二级指针的定义 2.二级指针的赋值 3.二级指针的使用 3.1 用二级指针输出一级指针的地址 3.2 用二级指针输出一级指针中的内容 3.3 ...
- 带你认识什么是一级指针、二级指针、三级指针
今天带大家了解一下什么是一级指针.二级指针.三级指针 1.一级指针 一级指针其实就是我们平时常见的普通指针 如: int a = 12; int * b = &a; //一级指针,定义一个指针 ...
- C/C++二级指针概念及应用(有向图的邻接表(拓扑排序)、有向网图的邻接表、树的孩子表示)
目录 一.概述 例1: 例2: 代码: 二.实例 1.有向图的邻接表(拓扑排序) 2.有向网图的邻接表 3.树的孩子表示 一.概述 二级指针:指向指针的指针.一般需要修改地址的时候会用到二级指针. 注 ...
- 指针数组,数组指针,指针函数,函数指针,二级指针详解
先看个简单的:char *p,这定义了一个指针,指针指向的数据类型是字符型,char *(p)定义了一个指针P: char *p[4], 为指针数组,由于[]的优先级高于*,所以p先和[]结合,p[ ...
- 【C 语言】结构体 ( 结构体中嵌套二级指针 | 为 结构体内的二级指针成员 分配内存 | 释放 结构体内的二级指针成员 内存 )
文章目录 一.结构体中嵌套二级指针 1.结构体中嵌套二级指针 类型声明 2.为 结构体内的二级指针成员 分配内存 3.释放 结构体内的二级指针成员 内存 二.完整代码示例 一.结构体中嵌套二级指针 1 ...
- C语言中二级指针的作用
C语言中不存在引用,所以当你试图改变一个指针的值的时候必须使用二级指针. 1.当不用指针时,参数传入子函数的过程为值传递,子函数中修改的局部变量的值对原来的实参并没有影响. 2.当用一级指针时,参数传 ...
最新文章
- php 调用url field,使用 PHP curl 调用 API,如何传递如下格式的 POSTFIELD?
- e-cology在保险行业——泛微保险行业解决方案
- C-指针02 2017/11/24
- DOM(document object model),文档对象模型
- RabbitMQ3.8.4安装和配置
- 大数据产业目前面临哪些问题
- Wireshark安装Npcap组件失败的解决方法
- LUA C API接口
- VMware虚拟机安装Windows 10 详细教程
- 我也来开发2048之终极奥义
- Win10 Ubuntu16.04 时间同步问题
- Java脚本数组复制
- SQLPro Studio for Mac(可视化数据库管理工具)
- Get和Post请求参数格式
- HTML中的转义字符
- 用Marvelous Designer是如何构建人物角色3d服装的
- zabbix邮件报警发送至qq邮箱
- Android中根据dialog的展示与否控制软键盘的显示与隐藏
- LaTex 编译中文
- 国产数据库比较之大数据分析
热门文章
- 删除Chrome浏览器网站地址栏以前的搜索记录
- Python对文件进行重命名
- Linux怎么样修改文件编码,Linux下批量修改文件编码
- 计算机软硬件的开发及应用,管理和控制计算机系统软硬件资源的软件是 计算机软硬件开发...
- 软件环境 硬件环境java,软件环境和硬件环境都指什么?
- DAY 2 Perceived and cognition || HTML CSS 入门
- android 文件管理器 apk,Android6.0自带文件管理器无法打开apk文件
- 深度学习工作站装机指南
- Scala基本语法-面向对象
- Unity中访问GameCenter的实现