【问题标题】:How char arr[] = "OX|-" works in c languagechar arr[] = "OX|-" 如何在 c 语言中工作
【发布时间】:2016-11-13 01:10:06
【问题描述】:

我是 c 的初学者,我遇到了这一行

char arr[] = "OX|-";

printf("%4c",arr[6]); //it prints -
  1. 这里如何打印-

  2. | 运算符是否以这种方式在任何类型的数组中工作?

  3. 此行是否适用于 java、c# 等其他语言?

【问题讨论】:

  • 这可能是一个非常愚蠢的问题..你投了反对票..没问题..至少建议我一个想法..这样我就可以理解它是如何打印“-”
  • 发布的代码调用了未定义的行为。因此,您的第一个问题尝试回答是毫无意义的,因为您要在没有定义的地方要求定义。您的第二个问题没有意义,因为您发布的两行中没有使用operator |(按位或)。您的第三个问题似乎是在询问其他语言是否表现出类似的行为。 那个问题可以回答:有些可以,有些不可以。
  • 如何打印 - 在这里?”会发生什么?

标签: c arrays or-operator


【解决方案1】:

这是因为变量存储在堆栈中的方式。通过引用 arr[6] 您已经超出了数组的末尾(只有 5 个字节),现在正在引用另一个内存区域。无论发生什么存储在那里,该调用都会打印出什么。该|不是这里的操作员。

【讨论】:

    猜你喜欢
    • 2021-11-26
    • 2012-04-28
    • 2014-12-29
    • 2013-05-16
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 2014-02-20
    相关资源
    最近更新 更多