• 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语言指针学习经验总结浅谈等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

   这篇C语言指针学习经验总结主要是我入职以来学习C指针过程中的点滴记录。文档里面就不重复书上说得很清楚的概念性东西,只把一些说得不清楚或理解起来比较费解的东西做一下讲解,希望能达到以下三个目的

1.通过写这些东西,把我脑袋中关于C的模糊的知识清晰化。
2.给初转C的同事们一点提示和帮助。
3.也希望各位前辈检查一下文档中是否有理解偏差的地方。
1 指针的概念分解
      指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:

1.指针的类型
2.指针所指向的类型
3.指针的值或者叫指针所指向的内存区
4.还有指针本身所占据的内存区
先声明几个指针放着做例子:

例一:

(1)int *ptr;

(2)char *ptr;

(3)int **ptr;

(4)int (*ptr)[3];

(5)int *(*ptr)[4];

1.1 指针的类型
      从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。所以分析下例一中各个指针的类型:

(1)int *ptr; //指针的类型是int *

(2)char *ptr; //指针的类型是char *

(3)int **ptr; //指针的类型是 int **

(4)int (*ptr)[3]; //指针的类型是 int(*)[3]

(5)int *(*ptr)[4]; //指针的类型是 int *(*)[4]

所以找出指针的类型的方法是不是很简单?

1.2 指针所指向的类型
     当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符 *去掉,剩下的就是指针所指向的类型。例如:

(1)int *ptr; //指针所指向的类型是int

(2)char *ptr; //指针所指向的的类型是char

(3)int **ptr; //指针所指向的的类型是 int *

(4)int (*ptr)[3]; //指针所指向的的类型是 int()[3]

(5)int *(*ptr)[4]; //指针所指向的的类型是 int *()[4]

在指针的算术运算中,指针所指向的类型有很大的作用。

    指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当对C越来越熟悉时,你会发现,把与指针搅和在一起的“类型”这个概念分成“指针的 类型”和“指针所指向的类型”两个概念,是精通指针的关键点之一。有些教材书上写得很差,就把指针的这两个概念搅在一起了,所以看起书来前后矛盾,越看越糊涂。

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

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

相关文章

  • 2017-05-28使用ShellClass获取文件属性详细信息的实现方法
  • 2017-05-28C语言数据结构 链表与归并排序实例详解
  • 2017-05-28C++中auto_ptr智能指针的用法详解
  • 2017-05-28C++双向循环列表用法实例
  • 2017-05-28C++基于hook iat改变Messagebox实例
  • 2017-05-28C++二分查找(折半查找)算法实例详解
  • 2017-05-28vc中使用SendMessage自定义消息函数
  • 2017-05-28用C实现PHP扩展 Fetch_Url 类数据抓取的方法
  • 2017-05-28C 语言基础教程(我的C之旅开始了)[二]
  • 2017-05-28基于C语言实现的aes256加密算法示例

文章分类

  • 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之旅开始了)[十]
    • 关于STL中set容器的一些总结
    • 实例讲解C语言编程中的结构体对齐
    • C++空类详解
    • C++实现简单的扫雷游戏(控制台版)
    • 详解C语言中const关键字的用法
    • 解析sizeof, strlen, 指针以及数组作为函数参数的应用
    • 详解C语言中的函数、数组与指针
    • VC6.0实现读取Excel数据的方法
    • 基于typedef的用法详解

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

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