• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C语言 一级指针与二级指针详细介绍

C语言 一级指针与二级指针详细介绍

作者:一米王子 字体:[增加 减小] 来源:互联网 时间:2017-05-28

一米王子 通过本文主要向大家介绍了c语言 指针,c语言指针怎么理解,c语言中指针常用么,c语言指针详解,c语言指针教学视频等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

指针的概念

         指针就是地址, 利用这个地址可以找到指定的数据

         指针就是地址, 那么在使用的时候, 常常会简单的说 指针变量为指针

         指针变量就是存储地址的变量

        int *p1;// 申请了一个变量, 即在内存中开辟了一块内存, 存储数据

                    // 开辟了 8 个字节, 在 Mac 下 指针都占 8 个字节

         使用指针, 实际上应该说成使用指针变量

         1> 算术运算

              +1 移动几个字节?

              看类型: int *,  long *,  char *

         2> 获得地址表示的数据

              指针里面存储的是地址, 就可以将该地址中的数据取出来

              寻址运算符 *&p1  -> p1

         3> 修改改地址中的数据

         4> 作为函数参数的使用(*****)

              如果传递的不是指针变量, 而是普通的变量, 就是值传递: 函数内与函数外是两个不同的变量, 只是存储的数据相同(好比发送文件)

              如果传递的是指针变量, 即传递的是地址, 那么就是引用传递: 函数内外可以看成同一个变量(好比发送链接)

              由于函数参数使用指针后, 可以实现函数内变量修改后, 影响到函数外的变量. 因此常常将函数参数设置为指针类型的变量

              实现利用参数返回多个数据的函数

              scanf("%d", &num);

         二级指针

         二级指针就是指向一级指针的指针(n 级指针就是 指向 n-1 级指针的 指针)

         指针的本质就是地址, 那么几级指针也只是一个地址, 唯一不同的就是寻址的结果(*p)

         1>在开发中使用 二级指针的地方就是利用函数或方法返回一个 一级指针数据

        2> 如果需要用函数参数返回数据, 如果返回的是一般的数据, 传递一级指针

        3> 如果返回的是一个一级指针, 那么参数应该是一个二级指针

        4> 如果返回的是一个 n 级指针, 那么参数应该是一个 n+1 级指针

  下图中*p1指的是num的值,*p2指的是p1内存的地址,**p2也指的是num的值......

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C语言指针应用简单实例
  • C语言 一级指针与二级指针详细介绍
  • 5分钟内了解C语言的指针

相关文章

  • 2017-05-28浅析c与c++中struct的区别
  • 2017-05-28C++随机数生成实例讲解
  • 2017-05-28关于C++使用指针 堆和栈的区别分析
  • 2017-05-28C++中Operator类型强制转换成员函数解析
  • 2017-05-28C++动态规划之最长公子序列实例
  • 2017-05-28简单讲解C++的内部和外部函数以及宏的定义
  • 2017-05-28C++设计模式之模板方法模式
  • 2017-05-28C语言中free函数的使用详解
  • 2017-05-28C++中memcpy和memmove的区别总结
  • 2017-05-28浅析C++中memset,memcpy,strcpy的区别

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 深入分析C++中声明与定义的区别
    • C语言双向链表的表示与实现实例详解
    • 基于C语言实现的扫雷游戏代码
    • C语言数据结构中串的模式匹配
    • VC++ 中ListCtrl经验总结
    • C++实现一个线程安全的单例工厂实现代码
    • c语言版本二叉树基本操作示例(先序 递归 非递归)
    • C/C++编译器GCC下的常用编译命令总结
    • 深入全排列算法及其实现方法
    • C++位操作的常见用法小结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有