char a[] = {'a','b','c','d'}; strlen(a) = 16?char b[] = "abcd"; strlen(b) = 4?为什么会这样?visual studio 2008环境

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 04:20:00
char a[] = {'a','b','c','d'}; strlen(a) = 16?char b[] =

char a[] = {'a','b','c','d'}; strlen(a) = 16?char b[] = "abcd"; strlen(b) = 4?为什么会这样?visual studio 2008环境
char a[] = {'a','b','c','d'}; strlen(a) = 16?
char b[] = "abcd"; strlen(b) = 4?
为什么会这样?
visual studio 2008环境

char a[] = {'a','b','c','d'}; strlen(a) = 16?char b[] = "abcd"; strlen(b) = 4?为什么会这样?visual studio 2008环境
char a[] = {'a','b','c','d'}; strlen(a) = 16?
这个是16的原因是a[]没有以‘\0’结束,而strlen(a)会从a的首地址开始计算长度,直到遇到‘\0’结束
原理上来说strlen(a)的值是随机的.
char b[] = "abcd"; strlen(b) = 4?
这个strlen(b) = 4没得可说的,其实b[]是b[5]= {'a','b','c','d',‘\0’}.