Chinaunix首页 | 论坛 | 博客
  • 博客访问: 528786
  • 博文数量: 68
  • 博客积分: 2501
  • 博客等级: 大尉
  • 技术积分: 713
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-07 17:49
个人简介

文章分类

全部博文(68)

分类: LINUX

2010-06-08 18:41:01

#include
#include

/*sizeof 与strlen的区别示例。*/
int main(void)
{
char str[20]="0123456789";//系统初始化的时候会自动加上一个'\0'。
int a = strlen(str);
int b = sizeof(str);
printf("strlen of str:%d\n",a);//output a
printf("sizeof of str:%d\n",b);//output b
return 0;
}

输出:
strlen of str:10
sizeof of str:20

例子简单明了···strlen()是返回实际字符串大小(不包括'\0'在内),而sizeof()是返回整个字符串所占内存大小。

sizeof()是一个运算符,运算结果是类型的大小,可以用类型作参数,sizeof(int);还可以用函数作参数,sizeof(f());

strlen()是一个库函数(头文件string.h),返回值为一个字符串的长度。只能用char *作参数,必须为'\0'结尾的。

数组做sizeof()的参数不退化,传递给strlen()就退化为指针了。

数组作为参数传给函数时传的是指针而不是数组,传递的是数组的首地址。


 
阅读(1347) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~