const char reset = '3';
char savedArray[32] = "0000000000000000000000000000000";
savedArray[reset] = '1';
Serial.println(savedArray[reset]);
Serial.println(savedArray[3]);
Serial.println(savedArray);

所以我改变了savedArray位置的值,但是当我再次读出它时,我发现它3。。我做错什么了?为什么重置不与3相同?
串行输出:
1
0
0000000000000000000000000000000

最佳答案

假设ASCII甚至EBCDIC编码'3'是大于32的值。(在ASCII中,是51)。
savedArray[reset]中使用此项的行为是未定义的,因为您试图访问数组savedArray边界之外的索引。使用const char reset = 3;将数值3指定给任何数值类型,包括const char

关于c - 无法读取C中数组的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39567983/

10-12 23:59