65,206
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
int main()
{
char char_array[5] = "abcd";
char_array[2] = '\0';//下标或者索引值
printf("%c\n", char_array[2]);// '/0',输出结果为a;
printf("%c\n", char_array[3]);//输出结果为d;
printf("%c\n", char_array[4]);// '/0',输出结果为a;
printf("%s", char_array);//char型数组是字符串,碰到'/0'结尾,输出结果为ab;
return 0;
}
请问为何char_array[2]和char_array[4]的输出结果是a?‘/0’能否打印出来?
然后把下面的几行注释以后代码变成这样#include "stdafx.h"
int main()
{
char char_array[5] = "abcd";
char_array[2] = '\0';//下标或者索引值
printf("%c%d", char_array[2],2);
return 0;
}
输出结果是这样
内存里的值确实是‘\0’,但是打印出来就不对了,是有别的什么原因吗?[/quote]
这个现象我不清楚,我也遇到过一些诡异的事情
http://bbs.csdn.net/topics/392061821

#include "stdafx.h"
int main()
{
char char_array[5] = "abcd";
char_array[2] = '\0';//下标或者索引值
printf("%c%d", char_array[2],2);
return 0;
}