c - C语言中char arr[] = "OX|-"如何工作

标签 c arrays or-operator

我是c初学者,我遇到了这条线

char arr[] = "OX|-";

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

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

  3. 该行可以在其他语言(例如 java、c#)中使用吗?

最佳答案

这是因为变量在堆栈上的存储方式所致。通过引用 arr[6],你已经超出了数组的末尾(只有 5 个字节),现在正在引用另一个内存区域。无论存储了什么,该调用都会打印什么。 | 的 |不是这里的运算符(operator)。

关于c - C语言中char arr[] = "OX|-"如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38300980/

相关文章:

python - 共享库中 char 数组为空的 ctypes 结构

sql - 从数组中删除一个非唯一值

python - 如何正确克隆二维数组?

jsf - 在 EL 表达式中使用多个 bool 条件

JavaScript OR (||) 变量赋值说明

javascript - GAS OR 运算符使两个测试都被忽略

java - 面向对象编程中的类型

c - 在不编译的情况下获取 C 程序的输出

c - 如果递归函数采用多个参数,将参数放在结构中是否有性能优势

c - 数组地址是随机的还是固定的?