急.char a[12]={'a','b','c','d','e','f','g',}; strlen (a)的结果为多少?

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 06:38:20
急.char a[12]={'a','b','c','d','e','f','g',}; strlen (a)的结果为多少?
xKO@쪡eS ĝnEEP\iLR!BxCЍJ ʟiW]6`mƵ#>gqڎYMǃ-Nj$ps{ɔY;E+a}\Ёx'AB$#==.Kh7ˬU_Yu8fȔ6ȡQWH'EZo5\k&6Hh$=t{6gYZ'_Z_p1k\?dT؈Q ^^Dq5ct,vf^|hĕ^Y(4YAګMX螺D\奯=Fp"7ɇ'ĒIԂ ޼^;>t]r

急.char a[12]={'a','b','c','d','e','f','g',}; strlen (a)的结果为多少?
急.char a[12]={'a','b','c','d','e','f','g',}; strlen (a)的结果为多少?

急.char a[12]={'a','b','c','d','e','f','g',}; strlen (a)的结果为多少?
答案是:7
strlen(a)函数的功能是返回a的长度,不包括结束符NULL. (这是百度百科那里的解释)
实际用VC++运行了答案是7 sizeof(a)=12;
如果是楼下那种情况:
char a[] = {'a', 'b', 'c', 'd', 'e', 'f','g' };
strlen(a)是不确定的,此时字符'g'后面不存在'\0',所以sizeof(a)=7
如果手动在'g'后面添加'\0',变成
char a[] = {'a', 'b', 'c', 'd', 'e', 'f','g','\0' };
此时strlen(a)是确定的,值为7,而sizeof(a)=8