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

news2024/11/25 18:37:41

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

在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「C语言从专业入门到高级教程+工具包」,点个关注,全部无偿共享给大家!!!

在评论区回复“888”,关注我之后私信回复“888”,即可拿走。

C 语言发明的时间很早,当时人们对"类型系统" 还很陌生,很多人还习惯将二进制字节作为唯一的数据类型。设计 C 语言的语法时,也不知是谁想出来的,有种设计哲学:让声明的形式与它的使用形式尽可能相似。在这种设计哲学下,是先想如何使用,再来逆推如何声明,这样 C 语言的声明语法显得有点古怪,


比如:

· 声明 int a; 使用时,a 的类型就是 int。

· 声明指针 int *b; 使用时,*b 的类型就是 int。

· 声明数组 int b[10]; 使用时用 b[0];

· 定义函数指针,int (*ptr)(int a, int b); 使用时,就是 (*ptr)(a, b); 可以简写成 ptr(a, b);

C 这种语法设计,在今天看来是不好。使用这种语法,程序员不可以直接从左往右读,有时甚至需要从中间往两边读。只是 C 语言的影响太大,人们常见类 C 的语法,C 语言有些不好的地方也就忍了。C++ 就继承了这种语法,甚至这种语法的设计哲学,反正我总记不住成员函数指针是怎么声明的。7c97b4739c3ee283b0ee4ab798f2a4b9.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1288630.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第一节:认识微服务

一、微服务技术对比 Dubbo SpringCloudSpringCloudAlibaba注册中心zookeeper、Redis Eureka、ConsulNacos、Eureka服务远程调用Dubbo协议Feign(http协议)Dubbo、Feign配置中心无SpringCloudGateway、ZuulSpringCloudConfig、Nacos服务网…

React中ref的四种使用方法

个人公众号 公众号文章-React中ref的四种使用方法 个人公众号,求关注公众号~ 求指导,求点赞,求评论。 写在前面的废话 什么时候使用ref的环境就不说了,比如我们要获取一个输入框的value,无法通过state去获取&#x…

固态硬盘速度测试:硬盘实际性能是否符合标准?

在进行固态硬盘速度测试之前我们先来了解一下固态硬盘的读写速度是什么。固态硬盘的读写速度主要分为顺序读写和随机读写(4K)。 ​顺序读写:指的是硬盘在读写连贯、集中大文件时候的速度。比如在读取、拷贝单个视频文件时,就是硬盘…

Light-Head R-CNN: In Defense of Two-Stage Object Detector(2017.11)

文章目录 Abstract1. Introduction2. Related works3. Our Approach3.1. Light-Head R-CNN3.1.1. R-CNN subnet3.1.2. Thin feature maps for RoI warping 3.2. Light-Head R-CNN for Object Detection Conclusion 原文链接 Abstract 在本文中,我们首先研究了为什么…

如何能够获得想要的科研数据资料呢?

在当今的学术界,科研数据的获取对于研究人员来说至关重要。然而,由于各种原因,如数据难以获取、数据不完整或不准确等,使得许多研究人员面临困难。那么,如何才能够获得的科研数据资料呢? 一、参考文献 根…

实验报告-实验四(时序系统实验)

软件模拟电路图 说明 SW:开关,共六个Q1~Q3:输出Y0~Y3:输出 74LS194 首先,要给S1和S0高电位,将A~D的数据存入寄存器中(如果开始没有存入数据,那么就是0000在里面移位,不…

Azure Machine Learning - 在 Azure 门户中创建演示应用

目录 准备环境启动向导配置搜索结果添加自动提示功能添加建议创建、下载和执行清理资源 使用 Azure 门户的“创建演示应用”向导来生成可下载的“localhost”样式的 Web 应用,该应用在浏览器中运行。 根据其配置,生成的应用在首次使用时就能正常运行&…

Spring Cloud Alibaba实践:使用Nacos实现服务注册与发现

什么是Nacos Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构 (例如…

初学者如何入门深度学习:以手写数字字符识别为例看AI 的学习路径,一图胜千言!超多高清大图收集整理

文章大纲 深度神经网络机器学习,深度学习,数据发掘之间的关系神经元与激活函数理解深度神经网络最好的可视化工具深度学习基础概念能解决神马种类的问题?卷积池化以手写字符识别为例讲述深度学习的分类问题MNIST 数据集简介初学者入门 :生成式 AI -- generative-ai-for-beg…

GPT-Crawler一键爬虫构建GPTs知识库

GPT-Crawler一键爬虫构建GPTs知识库 写在最前面安装node.js安装GPT-Crawler启动爬虫结合 OpenAI自定义 assistant自定义 GPTs(笔者用的这个) 总结 写在最前面 GPT-Crawler一键爬虫构建GPTs知识库 能够爬取网站数据,构建GPTs的知识库&#xf…

AWS Remote Control ( Wi-Fi ) on i.MX RT1060 EVK - 2 “架构 AWS”

接续上一章节,我们把开发环境架设好之后,此章节叙述如何建立 AWS IoT 环境,请务必已经有 AWS Account,申请 AWS Account 之流程将不在此说明。 III-1. 登入AWS IoT, 在“管理”>“所有装置”>“实物”下点击“建…

element-plus组件中的el-drawer的使用

在项目的制作过程中经常会用到弹窗组件,这里假设一种情况当你在一个页面需要多个弹窗组件的时候怎么样才能精准的打开和关闭对应的弹窗呐?? ① 绑定一个点击事件----【给点击事件传入一个下标】这里是打开事件 ② 使用element-plus中的 :befo…

最新关于openai.APIConnectionError: Connection error.的解决方法

其实是和以前一样的处理方式,(挂魔法)修改代理,但是openai的源码改了,好多博客的方法不能用了。现在给一个新的修改方式,自己用的,发现可以。 1.找到pip下载的openai的Lib,找到_base…

2023年度端侧transformer类分类力作SwiftFormer模型解读

写在前面:本篇直接结合代码来理解网络的笔记 paper: Swiftformer-paper code: https://github.com/Amshaker/SwiftFormer 文章目录 网络结构精析零、整体一、patch embed二、stage 网络结构精析 零、整体 可以看到结构中,整体就是: stem -&…

融云 Global IM UIKit,灵活易用的即时通讯组件设计思路和最佳实践

(全网都在找的《社交泛娱乐出海作战地图》,点击获取👆) 融云近期推出的 Global IM UIKit,支持开发者高效满足海外用户交互体验需求,且保留了相当的产品张力赋予开发者更多自由和灵活性,是实现全…

算能技术资料地址、Demo github地址

技术资料地址: https://developer.sophgo.com/site/index/material/38/all.html Demo github地址:https://github.com/sophgo/sophon-demo

--enable-preview JDK预览新功能运行打包

--enable-preview JDK预览功能运行打包 1. 这里以JDK19的预览功能虚拟线程为例2. 解决方案:在pom文件中加入build 1. 这里以JDK19的预览功能虚拟线程为例 以下这段代码是无法运行的。会报错 SpringBootApplication public class SpringBootOkhttpApplication {pub…

【PID学习笔记 6 】控制系统的性能指标之二

写在前面 上文介绍了控制系统的稳态与动态、过渡过程、阶跃响应以及阶跃信号作用下过渡过程的四种形式。本文紧接上文,首先总结过渡过程的分类,然后介绍控制系统的性能评价,最后重点介绍控制系统性能指标中的单项指标。 一、过渡过程的分类…

【C】递归函数

一、什么是递归 递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数⾃⼰调⽤⾃⼰。 我们先了解一个知识: 每一次函数调用,都会向内存栈区上申请一块空间。 这块空间主要用来存放函数中的局部变量,和函数调用过程中…

圈子社交系统:打破时间与空间的限制。APP小程序H5三端源码交付,支持二开!

在现代社会,社交已成为人们生活中不可或缺的一部分。然而,传统的社交方式往往受制于时间和空间的限制,使得人们难以充分发挥社交的潜力。为了解决这一问题,圈子社交系统应运而生。 圈子社交系统通过技术手段打破时间与空间的限制&…