在这种情况下,数组索引中的字符表示如何工作?

2024-04-15

我是 C 初学者,我有这样的代码:

#include <stdio.h>
main()
{
    int i;
    int ndigit[10] = { [9] = 5 };
    printf("%d\n",++ndigit['9']);
}

这会打印如下值:

-1074223011

但是当我将语句更改为:

++ndigit['9'-'0']

它正确打印了值

6

我想知道为什么需要添加-0在我的索引中以使其正常工作?为什么只是提到++ndigit['9'],对我没有帮助吗?

提前致谢。


如果你想访问数组中的第 10 个元素,你可以:

array[9]

如果要访问索引处具有数字字符常量值的元素9+ 1,你做:

array['9']

由于 ASCII(以及 C 使用的所有其他字符编码方案,请参阅 Wiz 的注释)的定义方式,表达式'9' - '0'实际上等于 9,在这种情况下这可能会让您感到困惑。

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

在这种情况下,数组索引中的字符表示如何工作? 的相关文章

随机推荐

  • 从旧的 Git 提交中删除私有信息

    我有一个使用 Git 进行版本控制的项目 我想将其开源 但其中包含一些特定于其最初使用环境的私人信息 我将更改相关信息以从未包含在存储库中的配置文件加载 我意识到我应该首先这样做 但由于私人信息仍然存在于之前的提交中 我该如何将其从我的历史
  • 如何使用服务更改作用域变量?

    我有一个应用程序 应用程序内部有一个注册和登录表单 通过注册表单 当用户创建帐户时 他们会自动登录 通过登录表单 用户也可以登录 显然 我有两个控制器 一个用于注册表单 一个用于登录表单 我希望他们能够共享一个服务 logIn 因为两种形式
  • 基于 Spring Boot AMQP 的 JmsListener 在 TextMessage 上失败

    我有一个 Spring Boot 应用程序 在检索类型的 JMS 消息时遇到问题TextMessage来自 ActiveMQ 代理 如果消费者尝试从代理检索消息 它无法自动将消息转换为 TextMessage 而是将其视为 ByteMess
  • 如何从 json 字符串获取对象列表 c# Newtonsoft.json

    我正在尝试将 JSON 字符串转换为对象列表 但收到错误 无法将当前 JSON 对象反序列化为 List 类型 因为该类型需要 JSON 数组才能正确反序列化 我检索 json 它看起来像这样 Code 0 Message OK Data
  • Internet Explorer 开发人员工具如何保留导航日志?

    我正在寻找在 Internet Explorer 开发人员控制台中记录内容以保留页面刷新的方法 在 Google Chrome 和 Firefox 的 Firebug 下 这是一个选项 但我在 IE 下找不到它 我用的是IE 9 在 IE
  • 防止运行测试时优化掉未使用的静态函数

    我正在编写一个将利用 LLVM 的库 通过inkwell https github com TheDan64 inkwell 来 JIT 编译一些函数 这些函数需要能够回调我的代码中的一些 Rust 函数 我让它工作 但我的单元测试不起作用
  • 使用一个 AJAX 响应更新两个 div

    全部 我正在使用 jQuery AJAX 调用一个文件来基本上保存某人是否喜欢某首歌 我正在尝试做类似以下的事情 var html ajax type POST url save song php data song id song id
  • R:在数据框中插入多行(可变数量)

    我有一个数据框 例如 5 行 用于 2 个可观察值 我需要在数据框中插入 虚拟 或 零 行 以便每个可观察的行数相同 并且可以大于 N 行 以获得更长的行数 例如 This is what I have x c a a b b b y c
  • 比较 2 个单独的 csv 文件并将差异写入新的 csv 文件 - Python 2.7

    我正在尝试比较 python 中的两个 csv 文件 并将差异保存到 python 2 7 中的第三个 csv 文件中 import csv f1 open olddata file1 csv oldFile1 csv reader f1
  • JPanel 未显示

    为什么 UI 没有显示在我的下面的代码中 public class GUI extends JPanel public GUI String name String address List
  • php中包含bootstrap和js

    我需要一双新的眼睛来看待这个 我直接从我的一把老小提琴中获取代码https jsfiddle net RachGal fs9u6mwe 1 https jsfiddle net RachGal fs9u6mwe 1 在大学厨房网站上显示照片
  • Terraform 条件配置

    我对 Terraform 配置有疑问 当我第一次运行 terraform 时 我使用在 AWS 控制台中生成的 SSH 密钥 该密钥正在添加到ubuntu用户 Ubuntu 16 04 AMI 然后我跑remote exec配置 provi
  • objdump 输出中的“Algn”2**2 和 2**0 意味着什么?

    下面的文件中这是什么意思 2 2 and 2 0 objdump h main o main o file format elf32 i386 Sections Idx Name Size VMA LMA File off Algn 0 t
  • 使用数组中的参数生成 URL

    我需要采用如下所示的数组 subids Array s1 gt one s2 gt two s3 gt three s4 gt four s5 gt five s6 gt six 并生成一个 URL 例如 所有 subids 并不总是已定义
  • 如何将光标设置在edittext的末尾

    每当我触摸编辑文本时 光标应该位于末尾 即使编辑文本已经有一些文本并且它不应该允许向左移动奖项 editTextView setOnTouchListener new View OnTouchListener Override public
  • 查找当前 Vim 折叠的第一行

    我正在编写一个 Vimscript 函数 其中我需要查找当前折叠的第一行的行号 到目前为止我一直在使用这个 function GetFoldStart let l current line line normal z let l curre
  • 使用 Python 在 Google 中搜索

    我想使用 python 脚本在 Google 中搜索文本 并返回每个结果的名称 描述和 URL 我目前正在使用这段代码 from google import search ip raw input What would you like t
  • OSX Mountain Lion 上新安装的 RVM Ruby 1.9.3 出现“bad ecpoint”SSL 错误

    尝试使用 Ruby 1 9 3 rest client发出 https 请求 例如 RestClient get https google com 总是给我一个 SSL 错误 OpenSSL SSL SSLError SSL connect
  • 在VB6中使用Sax解析编辑和编写XML

    因此 我尝试使用 VB6 中的 SAX 解析 对于古老的 COM 组件 来编辑 xml 输出是 xml 我更喜欢使用 DOM 解析 但 xml 的大小 可能超过 20MB 迫使我使用 SAX 我对 VB6 比较陌生 并且没有 SAX 解析经
  • 在这种情况下,数组索引中的字符表示如何工作?

    我是 C 初学者 我有这样的代码 include