c - 大小为 0 的数组如何存储在内存中?
问题描述
如果我有一个只有一个元素的数组,我们可以说它与指针相同。但是一个大小为零的数组在内存中是如何表示的呢?
当我声明一个变量时会发生什么int * table[0]
?
解决方案
如果我有一个只有一个元素的数组,我们可以说它与指针相同
不,我们不可以。数组和指针是不同的类型,它们在内部的表示方式也不同。无论数组大小如何,这都是正确的。现在,在某些情况下(实际上是大多数情况),数组衰减到指向它的第一个元素的指针也是正确的。
根据标准,大小数组0
是非法的,但是一些主要的编译器(如 gcc)允许它们作为扩展。
阅读此问题以了解数组和指针的内部表示之间的区别:取消引用指针和访问数组元素之间的区别
推荐阅读
- python - Python MySQL 连接器超时
- windows - 脚本执行后无法从 powershell 控制台退出
- javascript - Firestore - 删除大量文档而没有并发问题
- python - 列表推导中的这个 lambda 表达式有什么问题?
- mysql - 我想将数据库包含到安装文件中
- node.js - Node.js 和 express 应用程序正在运行,但无法访问页面
- javascript - 如何把一整堂课放在右边?/ 如何在课堂上添加填充?- 困惑(React.js - Bootstrap)
- php - npm install&&npm run dev 为什么不起作用?
- java - 我们可以在 Java Socket 的单个 JPanel 中多次使用 ObjectOutputStream 吗?
- mysql - 如何仅在小数点后显示mysql值