为什么C语言用int*a来声明指针变量,而不是int&a声明

应该是写法造成的误解。建议写成 int* a = &b;就清楚多了。a的类型是int*,值是&b,C语言连续声明指针变量的时候又有点问题写成int* a, b, c;结果只有a是指针,b和c就是简单的整形变量了。

应该是写法造成的误解。建议写成 int* a = &b;就清楚多了。a的类型是int*,值是&b,C语言连续声明指针变量的时候又有点问题写成int* a, b, c;结果只有a是指针,b和c就是简单的整形变量了。这种时候又需要写成int *a, *b, *c;这就属于容易出错的地方了,所以定义指针的时候建议分开定义。

熟悉C语言的特性,包括他的缺点,才能在开发的过程中少挖坑少掉坑,所以C语言四大名著中有两本来讲这些问题。

C语言里边,变量声明后边的 = 符号跟赋值语句的的 = 符号含义不同。后来C++也继承了这个特性。而这可能是给题主造成困惑的核心。

int *a = &b;

实际上可以理解为

int *(a = &b);    // 只是示意,当然这样写是不对的

也就是说,先把&b赋值给a,然后令 *a 的类型为 int。

所以这里 &b 是赋值给 a 而不是赋值给 *a。

不过这里就存在一个矛盾:赋值语句的 = 符号的优先级低于 * 号的,为什么这里先计算等于号后计算星号?按照运算符优先级规则,此处的 &b 应当赋值给 *a 才对。

延伸阅读:

什么是C语言?

C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。

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

文章标题:为什么C语言用int*a来声明指针变量,而不是int&a声明,发布者:小编,转载请注明出处:https://worktile.com/kb/p/39221

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编站长
上一篇 2023年2月22日
下一篇 2023年2月22日

相关推荐

  • 如何管理代码质量以提升研发效能

    在软件开发过程中,代码质量维护是提升研发效能的关键因素之一。本文主要探讨了提升代码质量的几个核心观点:1、编码标准化 2、代码审核 3、单元测试 4、自动化构建与部署 5、持续集成 6、重构 7、文档编制及维护。通过编码标准化,确保代码风格一致,提高可读性。实施代码审核来把关代码质量,促进团队合作。…

    2023年11月17日
    1300
  • 仿射变换和单应矩阵有什么本质的区别

    区别有:1、定义;2、构成元素;3、应用场景;4、数学表达;5、几何意义;6、约束条件。在几何中仿射变换是由线性变换和一个平移组成的复合变换。单应矩阵是二维图像平面和二维图像平面之间的变换,用于描述两个平面上的点集合之间的对应关系。 1、定义 仿射变换 (Affine Transformation)…

    2023年7月30日
    13900
  • while和do while的区别是什么

    while和do while的区别在于以下几个方面:1、循环结构的表达式不同;2、执行时判断方式不同;3、执行次数不同;4、执行末尾循环体的顺序不同。循环结构的表达式不同是指,while循环结构的表达式为while(表达式){循环体}。 一、循环结构的表达式不同 while循环结构的表达式为:whi…

    2023年2月21日
    1.3K00
  • 如何在百度搜索引擎中进行优化

    在百度搜索引擎中进行优化的步骤:1、选择合适的关键词;2、提升关键词密度;3、优化页面标题和描述;4、优化内部链接;5、建立外部链接;6、提供有价值的内容;7、优化页面加载速度;8、使用语义化标签;9、移动端优化;10、定期更新内容;11、监控竞争对手的SEO策略;12、与用户建立良好的关系。

    2023年11月11日
    2000
  • 什么叫APP

    app全称“Application”,意思为“应用程序”,一般是指手机软件,即主要指安装在智能手机上的软件,用于完善原始系统的不足与个性化,为用户提供更丰富的使用体验。根据手机app安装来源不同,又可分为手机预装软件和用户自己安装的第三方应用软件。 一、什么叫APP App是英文Applicatio…

    2023年5月31日
    6400
  • bug管理系统有哪些

    bug管理系统有:1、PingCode;2、Worktile;3、禅道;4、Tracup;5、Bugtags;6、QC(Quality Center);7、Bugzilla;8、EasyBUG;9、Mantis;10、WebIssues。PingCode具备专业的缺陷管理模块,有效帮助团队解决缺陷管…

    2023年1月31日
    44400
  • 企业管理系统项目怎么描述

    企业项目管理系统,是专门用于企业级别使用的项目管理工具,它能解决大量项目中产生的问题、梳理项目管理流程、处理大量资源的集合型工具。企业项目管理系统能够兼顾研发、生产和交付类主营业务项目,以及改善企业运营管理而实施的IT项目。 企业项目管理系统,是专门用于企业级别使用的项目管理工具,它能解决大量项目中…

    2023年4月16日
    9000
  • oa系统有哪些功能模块

    oa系统有以下功能模块:一、人力资源;二、门户应用;三、流程管理;四、知识管理;五、财务管理;六、工作微博;七、日程管理;八、会议管理;九、考勤管理;十、任务管理。人力资源是整个协同OA的基础,协同OA系统的整个系统的职责体系。 一、人力资源 人力资源是整个协同OA的基础,协同OA系统的整个系统的职…

    2023年3月31日
    67000
  • SSL 证书是如何工作的

    SSL 证书工作过程分6大步骤:1、浏览器或服务器尝试连接到使用 SSL 保护的网站(即 Web 服务器);2、浏览器或服务器请求 Web 服务器证明自己的身份;3、作为响应,Web 服务器向浏览器或服务器发送它的 SSL 证书的副本。

    2022年10月17日
    24000
  • 常用的项目管理软件有哪些

    常用的项目管理软件有:1、PingCode;2、Worktile;3、Microsoft Project;4、asana;5、Clarizen;6、Jira;7、Wrike;8、Redmine。PingCode是国内的一款知名研发项目管理软件,被36氪评为:2021年国内研发项目管理榜单名列前茅的研…

    2023年3月31日
    20700

发表回复

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

400-800-1024

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

分享本页
返回顶部