如何确定 C 中数组的大小?

2024-04-21

如何确定 C 中数组的大小?

即数组可以容纳多少个元素?


执行摘要:

int a[17];
size_t n = sizeof(a)/sizeof(a[0]);

完整答案:

要确定数组的大小(以字节为单位),您可以使用sizeof操作员:

int a[17];
size_t n = sizeof(a);

在我的计算机上,int 的长度为 4 个字节,因此 n 为 68。

为了确定数组中元素的数量,我们可以除以 数组的总大小除以数组元素的大小。 您可以使用类型来执行此操作,如下所示:

int a[17];
size_t n = sizeof(a) / sizeof(int);

并得到正确的答案 (68 / 4 = 17),但如果类型a改变了,如果你忘记改变,你会遇到一个讨厌的错误 这sizeof(int)以及。

所以首选除数是sizeof(a[0])或同等的sizeof(*a),数组第一个元素的大小。

int a[17];
size_t n = sizeof(a) / sizeof(a[0]);

另一个优点是您现在可以轻松参数化 宏中的数组名称并获取:

#define NELEMS(x)  (sizeof(x) / sizeof((x)[0]))

int a[17];
size_t n = NELEMS(a);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何确定 C 中数组的大小? 的相关文章

  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • C++ 子字符串返回错误结果

    我有这个字符串 std string date 20121020 我正在做 std cout lt lt Date lt lt date lt lt n std cout lt lt Year lt lt date substr 0 4 l
  • 每个术语出现的次数

    我得到了一个数组a n 2 where n can be 10 5最大时有n个科目和n个学生 全部编号为 1 2 n a i 0 and a i 1 1 lt i lt n 表示在第 i 个科目中 所有来自a i 0 to a i 1 通过
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • Excel:#CALC!使用 MAP 函数计算间隔重叠时出现错误(嵌套数组)

    我正在努力解决以下公式 它适用于某些情况 但不适用于所有情况 名字input有失败的数据集 得到一个 CALC 描述 嵌套数组 错误 LET input N1 0 0 N1 0 10 N1 10 20 names INDEX input 1
  • 如果使用 SingleOrDefault() 并在数字列表中搜索不在列表中的数字,如何返回 null?

    使用查询正数列表时SingleOrDefault 当在列表中找不到数字时 如何返回 null 或像 1 这样的自定义值 而不是类型的默认值 在本例中为 0 你可以使用 var first theIntegers Cast
  • Web API - 访问 DbContext 类中的 HttpContext

    在我的 C Web API 应用程序中 我添加了CreatedDate and CreatedBy所有表中的列 现在 每当在任何表中添加新记录时 我想填充这些列 为此目的我已经覆盖SaveChanges and SaveChangesAsy
  • C# 中的递归自定义配置

    我正在尝试创建一个遵循以下递归结构的自定义配置部分
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • Process.Start 阻塞

    我正在调用 Process Start 但它会阻止当前线程 pInfo new ProcessStartInfo C Windows notepad exe Start process mProcess new Process mProce
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 使用随机放置的 NaN 创建示例 numpy 数组

    出于测试目的 我想创建一个M by Nnumpy 数组与c随机放置的 NaN import numpy as np M 10 N 5 c 15 A np random randn M N A mask np nan 我在创建时遇到问题mas
  • 使用 libcurl 检查 SFTP 站点上是否存在文件

    我使用 C 和 libcurl 进行 SFTP FTPS 传输 在上传文件之前 我需要检查文件是否存在而不实际下载它 如果该文件不存在 我会遇到以下问题 set up curlhandle for the public private ke

随机推荐

  • 使用 H2 数据库在 JDBC 中将年份从负 -509 更改为正 510

    509 vs 510 我在使用 JDBC 时看到某种已更改或错误的数据 所以我观察使用H2数据库 http h2database com Java 8 更新 151 上的版本 1 4 196 这是一个完整的例子 请注意我们如何检索日期值三次
  • 如果不刷新页面,Vuex 状态不会更新

    我正在构建一个单页面应用程序 用户可以根据他们是否登录来看到不同的页面 登录调用工作正常 授权令牌保存在本地存储中 设置 我已经设置了一个名为的吸气剂loggedIn返回true如果在状态上设置了令牌 这是我的确切代码auth js商店模块
  • 将十六进制字符串转换为无符号整数 (VBA)

    在 MS ACCESS VBA 中 我通过在字符串前加上 前缀将十六进制字符串转换为十进制 CLng h1234 4660 CLng h80000000 2147483648 我应该怎么做才能将其转换为无符号整数 使用 CDbl 也不起作用
  • 在均匀网格上查找到点云中最近点的距离

    我有一个大小为 AxBxC 的 3D 网格 网格中的点之间的距离 d 相等 给定多个点 考虑到以下假设 找到每个网格点到最近点的距离 每个网格点应包含到点云中最近点的距离 的最佳方法是什么 假设 A B 和 C 相对于 d 来说相当大 给出
  • Python正则表达式查找大括号的所有大小写,包括括号

    我想查找并替换双大括号内的字符串 包括括号本身 例如 a href hello a 理想情况下应该返回 hello 我发现了这个表达 here https stackoverflow com questions 10643553 pytho
  • Android上如何使用UID获取用户名?

    我有几个这样的UID 10022 10011 1000 其实我知道他们的用户名是u0 a22 u0 a11 system 但问题是 如何使用UID获取用户名呢 没有 etc passwd根本没有文件 我编写了一个实用程序类 通过硬编码值来获
  • 仅出现在存档的 Mac OS X 产品中的错误

    我和我的朋友正在为 Mac 应用商店开发一个应用程序 我们将其提交给应用程序商店 但苹果以我们以前从未遇到过的错误为由拒绝了它 我们很难重现该错误 但经过一段时间的调试后 我们发现该错误仅出现在存档产品中 该错误的症状是 我们应用程序中的某
  • 将数据从 csv 复制到 D3 中的数组中

    我知道这个问题以前曾被问过 但由于某种原因 他们的解决方案对我不起作用 我正在尝试使用 CSV 文件中的数据填充两个数组 其中 name value alpha 34 beta 12 delta 49 gamma 89 我现在正在尝试的是
  • 如何单击表格单元格并显示带有注释的模式

    我对编程相当感兴趣 并且已经在一个问题上被阻止了几天 我有一个包含 2 列的表 记录 和每条记录的注释 注释 通常很长 因此我计划在 注释 列上的每个单元格上建立一个链接 并链接到显示注释的模式 我面临的问题是所有链接都会显示表格第一项的注
  • 使用超出范围的变量

    我正在制作一个响应式背景视频 我有这个代码
  • Silverlight、RIA 服务、MVC2P2 = 无数据

    我在升级当前项目以使用 RIA 服务时遇到问题 我添加了所有必要的 web config 更改 但仍然没有运气 我一切都编译得很好 但是当我使用数据上下文点击页面时 我收到错误 我用 fiddler 进行了调试 并且在其中一个请求上收到了
  • 如何在 Aqua Data Studio 中导出注册的服务器设置?

    有谁知道如何在 Aqua Data Studio 中导出注册服务器 也许有一些棘手的方法可以通过复制一些 ini 文件或注册表项来完成此操作 AD Studio 服务器注册位于 USER HOME datastudio connection
  • MySQL - 行计数和左连接问题

    我有 2 个表 活动和活动代码 营销活动 id partner id 状态 Campaign codes ID 代码 状态 我想要获取所有营销活动的所有营销活动代码的计数 其中营销活动代码 status 等于 0 或营销活动没有营销活动代码
  • 使用 jQuery 获取语法错误 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions Add a
  • Android 相当于 iPhone 的“添加到主屏幕”吗?

    我正在开发一个移动网络应用程序 目前我有一段 jQuery 代码 用于检查应用程序是否全屏运行 if window navigator standalone content before div class notice To enjoy
  • XSD 架构和 JAXB 类中的多态性

    我有一个像这样的xml
  • 如何防止 SVN 缓存单个存储库的凭据?

    我正在使用 Collabnet SVN 客户端版本 1 5 和 1 6 我的本地计算机运行的是 Windows Vista x64 我知道 确实非常悲伤 我想每次尝试在选定的存储库上执行任何颠覆操作时都强制进行身份验证 我如何将属性或设置设
  • 用于将 格式的 unicode 字符转换为其 ASCII 等效项的脚本

    我正在对 Linux 区域设置文件进行一些更改 usr share i18n locales 如 pt BR 更改日期 时间 数字等的默认格式 但是由于 unicode 字符在
  • 使用 Angular FormArray 计算值

    我正在尝试根据 FormArray 中的特定值计算总计或其他值 我发现订阅时valueChanges并尝试将整个数组传递给类似的东西reduce 新值 不存在于父 FormGroup 中 StackBlitz 上的原始示例 https st
  • 如何确定 C 中数组的大小?

    如何确定 C 中数组的大小 即数组可以容纳多少个元素 执行摘要 int a 17 size t n sizeof a sizeof a 0 完整答案 要确定数组的大小 以字节为单位 您可以使用sizeof操作员 int a 17 size