strlen的用法是怎么样的?

来源:百度知道 编辑:UC知道 时间:2024/06/06 12:44:46
char buf[10];
char* p = buf;
1.strlen(buf),strlen(p)各是多少?
2.sizeof(buf),sizeof(p)各是多少?
3.memset(buf),memset(p)各是怎么回事?

1.strlen(buf),strlen(p)各是多少?
-------------
视buf内的字符个数而定,2个一样

2.sizeof(buf),sizeof(p)各是多少?
-------------
buf的size是10,容量
p的size是4,指针都是4

3.memset(buf),memset(p)各是怎么回事?
-------------
清空buf内存,两个一样

1.strlen(buf),strlen(p)各是多少?
都不能确定,strlen以'\0'为结束标志
若buf为全局数组,则都为0;

2.sizeof(buf),sizeof(p)各是多少?
前者为10,后都为4

3.memset(buf),memset(p)
内存块清0

strlen 以\0位置计算
如果 buf= ab\0 则
strlen(buf)=strlen(p)=2