sizeof和strlen的区别

  1.sizeof是类似于宏定义的特殊关键字,strlen是函数

  2.sizeof a 也不能写成sizeof(a)

   sizeof(int) ,但是不能写成sizeof int

   3.sizeof(数组名),得到的是数组中元素的大小×4

   sizeof(函数形参的数组名),此时的数组名退化为一个指针,所以是4

   strlen(char类型的数组名),得到的元素的个数,例如 char a="123"; strlen(a)=3

   strlen(非char类型的数组名),编译错误。

  4.sizeof(指针变量) 得到的均是4,与指针的类型无关;

           strlen(char类型的指针变量)均是从该地址开始,统计字符个数,知道遇到"\0"为止;

           strlen(非char类型的指针变量)编译错误。

       5. sizeof (函数的话) 返回的是函数返回值的类型大小,例如: int f()  ; sizeof(f()) =4;   char g(); sizeof(g())=1;

          strlen不能这样子用;

      6.sizeof在编译的时候就已经算出来了,所以可以用作数组的大小,例如: int a; int arry[sizeof a];  

       strlen 是在运行的时候计算出来的。

 

总结与20120926下午15:14

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值