谁给讲讲这段代码
#include<stdio.h>
int main(void){
int i;
char *str="abc";
char visit[5] = {0};
visit[str[2]] = 3;
printf("%c\n",str[2]); //输出字母C
printf("%d\n",str[2]); //输出数字99
printf("%o",visit[str[2]]);//输出数字3
}
为什么只有5个字符数组visit,visit[99]还能赋值???
求解释 谢谢!!!
如果要写了这样一条代码:a[2]='s';内存就会变成下面这个样子:
此时数组b的内存空间就被破坏掉了,会出现未知的错误,这就叫做数组越界,编程时要注意这一点的。