>我真的很困惑。在 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
,因此您必须从'u'
中减去6
才能得到'o'
:
#include <stdio.h>
int main(void)
{
char array[100] = "errur";
array[3] -= 6;
printf("%sn", 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