c - 'o' = 'u' + 6,这不应该是'o' = 'u' - 6吗?数组默认值不是 0 吗?
问题描述
我真的很困惑。ASCII中小写字母'a'
的最小值和最大值。'z'
但为什么'o' = 'u' + 6
呢?
比如说我有
char array[100] = "errur";
char *ptr = array;
那我需要做
ptr[3] -= 6; // this
ptr[3] += 6; // not this
难道我做错了什么?
默认情况下,数组也不初始化为零吗?所以int array[10];
元素array[9]
最初的值为0?
最后,当我&
在 shell 中运行时,命令作业是列出工作事件的唯一方法吗?
解决方案
在 ASCII中,'u'
有值117
,'o'
有值,111
所以你必须减去才能6
得到:'u'
'o'
#include <stdio.h>
int main(void)
{
char array[100] = "errur";
array[3] -= 6;
printf("%s\n", array);
}
默认情况下,数组也不初始化为零吗?所以
int array[10];
元素array[9]
最初的值为0?
不,如果您不初始化自动变量,它们的值是不确定的。static
变量会自动初始化0
为适当的类型。
当您在数组定义中省略初始值设定项时,这些元素将设置为零:
int foo[3] = { 0 }; // foo[0] = 0, foo[1] = 0, foo[2] = 0
int bar[3] = { 1, 2 }; // bar[0] = 1, bar[1] = 2, bar[2] = 0
推荐阅读
- python - 用户定义出错时如何解决问题
- php - 财政年度范围内的匹配月份
- javascript - 如何更新函数内部全局对象的值,然后使用 JS 中的另一个函数访问其值?
- java - 我的方法只返回从 while 循环中获得的最后一个值
- python - Getting the error: TypeError: 'str' object is not callable when running a particular function twice
- c# - 将变量重置为其原始状态
- angular - 用于包裹角材料输入的组件不显示错误样式
- google-cloud-platform - 可以在 Google Cloud Composer 中更改默认配置吗?
- python - 如何从循环中将数据存储在函数中?
- azure - 在 Azure 中安全地存储 oAuth 令牌