C语言中的指针为什么要区别出指向不同数据类型的指针

这是因为目前的编译器还不能自动帮我们识别是什么类型,不同的类型存储空间是不一样的,所以我们需要手动来写明类型。指针如果没有类型,那么指针的“++”、或者“p=p+2”这样的操作,既不知道要偏移多少了。

C语言里面有一个使用广泛指针(void指针)你完全可以指向任意的空间,用的时候按照你喜欢的方式来用。为什么要把它转换为我们需要的类型呢?因为:目前的编译器还不能自动帮我们识别是什么类型,不同的类型存储空间是不一样的,所以我们需要手动来写明类型。

指针如果没有类型,那么指针的“++”、或者“p=p+2”这样的操作,既不知道要偏移多少了。

以p=p+2为例,编译器会根据p的类型将这个语句翻译成 p = p + 2 * (指针类型占用的内存大小),如果没有类型,这个语句就没有办法实现。但是到运行期,这个东西就看不见了。

指针也就是内存地址,指针变量是用来存放内存地址的变量,在同一CPU构架下,不同类型的指针变量所占用的存储单元长度是相同的(如在X86环境下,指针变量的大小都是4个字节),而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作。

延伸阅读:

什么是C语言?

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。

文章标题:C语言中的指针为什么要区别出指向不同数据类型的指针,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38836

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月19日 下午10:46
下一篇 2023年2月20日 上午12:19

相关推荐

  • 敏捷开发提交什么资料

    敏捷开发提交以下资料:一、产品愿景;二、项目概述;三、设计决策;四、操作文档;五、需求文档;六、支持文档;七、系统文档;八、用户文档。其中产品愿景文档是对产品核心的描述,是对当前的成本估算、预期收益、风险、人员配备估算和计划里程碑的总结。 一、产品愿景 它是对产品核心的描述,是对当前的成本估算、预期…

    2023年4月16日
    17900
  • 大数据获客软件有哪些

    大数据获客软件有:1、权鸟拓客APP;2、源源客APP;3、西瓜拓客;4、客易云数科; 5、客一客。权鸟拓客是通过我们大家熟知的高德、百度、搜狗、腾讯、360五大导航基站,所获得的客源信息是根据用户需求将那些在网上注册登记过的商户信息汇采集到一起。 一、权鸟拓客APP 权鸟拓客是通过我们大家熟知的高…

    2023年4月19日
    2.5K00
  • 产品管理怎么做

    产品管理怎么做:1、产品规划;2、需求管理;3、产品设计;4、产品开发与测试;5、产品验收与交付。其中,产品规划是指,产品经理在这个环节首先需要对市场和目标客户有透彻的了解,评估外在发展机会与风险。 一、产品规划 产品研发管理的名列前茅步,就是产品规划。产品经理在这个环节首先需要对市场和目标客户有透…

    2023年4月17日
    39600
  • 敏捷开发中的角色扮演是什么意思

    敏捷开发中的角色扮演是指团队成员在项目中扮演不同的角色,以实现更好的协作和项目管理。常见的角色有产品负责人、敏捷团队、敏捷教练、利益相关者和敏捷项目经理等。每个角色在敏捷团队中承担不同的责任和职责,共同推动项目的成功。根据项目的需求和团队的组成,角色可能会有所调整和变化,团队成员应该具有开放的心态和灵活的工作方式,以适应不同角色的要求,并积极参与协作和决策。

    2023年10月20日
    37000
  • Java中的Hibernate框架如何使用

    Hibernate框架在Java编程中提供了一个高效的ORM解决方案,它主要用于将对象模型映射到数据库结构。1、快速设置环境和集成H2数据库;2、映射实体与数据库表;3、使用SessionFactory创建和管理会话;4、通过Criteria和HQL进行数据查询和处理;5、利用Hibernate V…

    2024年1月8日
    16800
  • 怎么用r语言来循环处理一系列数据框

    用r语言来循环处理一系列数据框的方法有:1、利用assign();2、利用 parse() 和 eval()。其中,利用assign()是指,自定义变量名,assign(x, value) 的作用:给一个值分配一个名字,变量名不允许含有空格,故需要使用无分隔符拼接函数。 一、利用assign() 自…

    2023年3月19日
    99100
  • 安卓APP和苹果APP的建设区别有哪些

    安卓APP和苹果APP的建设区别有:1、开发工具;2、编程语言;3、APP性能;4、APP部署。在开发工具的使用上,两者有很大的区别。安卓软件的开发,常用开发工具是IDE Android Studio;而 iOS软件的开发,常使用的工具则是XCode,原因是它支持swift编程。 一、开发工具 在开…

    2023年5月13日
    38800
  • 医院管理系统设计

    医院管理系统设计需要聚焦于提高医疗服务质量、增强患者体验和医院运营效率。涉及关键构件包括:1、患者登记与档案管理、2、门诊与住院服务流程、3、药品与库存管理、4、财务与计费系统、5、预约与排队系统、6、电子病历系统、7、人力资源与员工排班、8、统计报告与分析决策支持。尤其在门诊与住院服务流程**部分…

    2024年1月9日
    23500
  • 云原生转型中常见的组织挑战

    云原生架构的转型通常伴随着多样的组织挑战,包括:1、文化转换与团队适应性;2、技术互通与资源整合;3、安全性与合规性问题;4、成本管理与优化;5、业务连续性与灾难恢复策略。这些挑战中,文化转换与团队适应性尤为关键,因为组织必须培养具有云原生思维的人才,平衡旧有流程与新技术之间的矛盾,推动良好的协作文…

    2023年12月28日
    18700
  • 体验为王的时代,呼叫行业的门槛竟然这么高了?

    “呼叫中心”,这个名词你可能没听过,但你一定接触过。 800、400、12345……电话客服的那头都是呼叫中心,各种智能客服机器人背后都有呼叫系统的支撑。可以说,如今我们每个人随时随地都可能以多种形式和呼叫业务发生交集。 正因为呼叫业务的重要性愈发凸显,它的发展、进化也受到越来越多人的关注。 安全合…

    2022年4月17日
    71600

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部