分配第 26 个元素后,打印时,尽管我为第 26 个索引分配了一个字符,但仍然打印出“Computer”。我期待这样的事情:“计算机 K”
这是什么原因?
#include <stdio.h>
int main()
{
char m1[40] = "Computer";
printf("%s\n", m1); /*prints out "Computer"*/
m1[26] = 'K';
printf("%s\n", m1); /*prints out "Computer"*/
printf("%c", m1[26]); /*prints "K"*/
}
最佳答案
在该字符串的 8th 索引处找到 \0
字符并且 %s
仅打印直到找到 \0
(字符串的结尾,由 \0
标记)- 在 26 处有字符 k
但不会打印因为在此之前找到了 \0
。
关于c - 初始化后分配给数组中的特定索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52440004/