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

相关推荐

  • logo的设计理念

    Logo的设计理念主要是为了传达品牌的核心价值和理念,同时激发观众的情感反应。设计一个成功的Logo需要考虑其可识别性、简洁性、独特性和适应性等因素。此外,Logo设计的颜色、形状和字体也能够传达品牌的特定信息和情感。 Logo,又称为商标,是一种图形标志,用于识别和代表公司、产品或品牌。一个有效的…

    2023年5月15日
    1200
  • 文档软件有什么用

    文档软件的功能有:一、文字编辑功能;二、表格处理功能;三、文件管理功能;四、版面设计功能;五、制作Web页面功能;六、拼写和语法检查功能;七、强大的打印功能和兼容性。文档软件可以编排文档,包括在文档上编辑文字、图形、图像、声音、动画等数据。 一、文字编辑功能 文档软件可以编排文档,包括在文档上编辑文…

    2023年4月27日
    700
  • 产品经理该如何收集用户需求

    产品经理该收集用户需求可以通过以下办法:1、市场与用户调研;2、竞品分析;3、用户访谈;4、实地研究;5组内头脑风暴;6、问卷调查。市场调研可以通过查看各个调研机构出的各类报告来了解市场状况,再把市场和用户结合起来查询针对性的调研报告。

    2023年1月4日
    6800
  • 钉钉上有okr管理工具吗

    钉钉上有okr管理工具,名称为Tita OKR。OKR(Objectives and Key Results)全称为“目标和关键成果”,是企业进行目标管理的一个简单有效的系统,是套定义和跟踪目标及其完成情况的管理工具和方法,Tita OKR管理工具能够将目标管理自上而下贯穿到基层。 一、钉钉的okr…

    2023年4月7日
    6800
  • 任务跟踪工具有哪些

    任务跟踪工具有:一、PingCode;二、Worktile;三、Taiga;四、OmniPlan;五、MeisterTask;六、Jira。PingCode的优势在于它是一款覆盖研发全生命周期的项目管理系统,被广泛用于需求收集、需求管理、需求优先级、产品路线图、项目管理、测试管理、缺陷追踪、文档管理…

    2023年4月16日
    3000
  • Python为什么要保留显式的self

    保留显式的 self 参数是 Python 的一种设计决策,它可以提高代码的可读性和可维护性,避免命名冲突的问题。保留显式的 self 参数的原因是为了增加代码的可读性和可维护性。通过显式地传递 self 参数,代码更加清晰,可以更容易地理解一个方法是作用于实例对象还是类本身。 在 Python 中…

    2023年5月29日
    300
  • 什么软件做project好用

    以下软件做project好用:一、PingCode;二、Worktile;三、Asana;四、Zoho Projects;五、Smartsheet。PingCode 是专门为软件研发团队打造的任务管理软件,你可以在 PingCode 管理软件研发过程中所有类型的任务,比如需求、开发、测试、缺陷、版本…

    2023年3月19日
    5500
  • 开发者生产力工具大全

    从人工到自动化,从重复到创新,技术演进的历程中,都伴随着开发者工具类产品的发展,所以这里整理近几年口碑良好,使用广泛的22款程序员生产力工具。 1.研发项目管理与协作:PingCode 优点:让工作推进、进度/问题追踪、团队协作变得更简单,2021年研发项目管理榜单TOP1(36Kr)。 简介:覆盖…

    2023年2月21日
    5500
  • gsm中影响tch完好率的都有哪些

    gsm中影响tch完好率的因素:1、话务负荷;2、硬件原因;3、覆盖原因;4、干扰原因;5、频繁切换;6、数据配置。其中。话务负荷指网络容量不够时与实际的话务分布产生偏差,这样会在实际用户量较大的小区出现TCH拥塞现象。

    2023年1月4日
    6900
  • 软件团队如何落地敏捷开发(Scrum)

    软件团队如何落地敏捷开发(Scrum)的步骤:1、确定产品负责人;2、组建敏捷小组;3、确定敏捷教练;4、拟定产品需求;5、评估产品需求;6、冲刺规划会;7、工作透明化等。确定产品负责人要求,产品负责人必须知道自己带领的团队需要做什么产品以及取得什么成果。

    2023年1月1日
    5200

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部