当前位置:编程学习 > C/C++ >>

一道关于字符数组的问题

char p[]={'a','b','c'},q[10]={'a','b','c'}; printf("%d%d\n",strlen(p),strlen(q)); strlen函数是求字符串的实际长度(不包含结束标志),并且作为函数值返回。 但是q[10]={'a','b','c'};中从第四位到第十位应该为0,那么0就不算是字符串的长度嘛?
答案:如果是整形数组,0当然算长度,字符数组就不是了。
因为字符数组遇到\0表示结束啦。 

不过提醒你 ‘0’是算长度的,也就是说
char p[] = {'a' , 'b' , 0 ,'c'};与
char p[] = {'a' , 'b' , '0' , 'c'};是不一样的,前者输出是ab,后者输出是ab0c;
其他:结束标志 '\0'   的ascii码是 0
所以 0 就是 结束标志 '\0'
所以........... 0其实就是NULL也就是空,是字符串的结束符。 

上一个:链表的操作(链表的建立,访问,删除链表指定结点,增加结点) C语言
下一个:循环队列问题

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,