hur.cn - 华软网

 热门搜索

sizeof&strlen

  作者:未知    来源:网络    更新时间:2011/9/28
什么是操作符,sizeof 和strlen 有和区别。。。。。。。。
#include<iostream>
#include<string.h>
int main(){
 char str[]="abcdefg";
 
 int test=sizeof(str);
 int test2=sizeof(str[0]);

 strlen(str[0])//这里为什么会出错啊,好像不能这么用。。。。。


return 0;
}
在vc6.0中会报一下的错误
error C2664: 'strlen' : cannot convert parameter 1 from 'char' to 'const char *'
???????请求高手解答。。。。。。。。。。。。
---华软 网友回答---
str[0]是一个字符而不是指针
---华软网友回复---
strlen(str);
参数是一个以\0结束的字符串指针
---华软网友回复---
sizeof求的是字节数
strlen求得时长度 确切的说是字符串到\0为止的长度
---华软网友回复---
strlen是函数,参数为字符指针
sizeof是操作符,是求类型的长度
例如
char * szBuffer = new[100];
strcpy(szBuffer,"abcdefg");
sizeof(szBuffer);//等于4,这里求的是指针的长度
strlen(szBuffer);//等于7
---华软网友回复---
记住,如果这里的szBuffer定义如下:
char szBuffer[100];
这sizeof为100
---华软网友回复---
size取的是一个数据类型的长度,这个类型类型可能是指针,可能是数组,可能是结构体等,是编译期确定的,是不变的

strlen取的是字符串的长度,是运行时确定的,是可变的。

---华软网友回复---
sizeof 是一个算符,可用于任何变量名、类型名或常量值,当用于变量名(不是数组名)或常量时,它不需要用圆括号。因为考虑到字节对齐, 它算出的是变量在内存中占用的字节数。
strlen是一个函数,计算以“\0”结尾的字符串中非“\0”字符的数目。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。