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


为什么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

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-06 12:42:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-06 12:42:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-06 12:42:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-06 12:42:06       20 阅读

热门阅读

  1. 机器学习在缺陷检测中的实际效果与应用案例

    2023-12-06 12:42:06       38 阅读
  2. flask 异步编程 asyncio

    2023-12-06 12:42:06       36 阅读
  3. 华为鲲鹏+银河麒麟V10编译FreeSWITCH1.10.9

    2023-12-06 12:42:06       50 阅读
  4. Git配置

    Git配置

    2023-12-06 12:42:06      43 阅读
  5. npmmirror 镜像站(国内好用的npm镜像站 cnpm)

    2023-12-06 12:42:06       41 阅读