A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© samer123 中级黑马   /  2015-6-1 22:58  /  1180 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

sizeof得到的是内存分配的空间数,即存储单元个数,strlen得到的是字符串中字符格式不包括\0

评分

参与人数 1黑马币 +5 收起 理由
Hosing + 5

查看全部评分

11 个回复

倒序浏览
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(){
  4.         char a[] = "hello world!";
  5.         printf("sizeof = %d", sizeof(a));
  6.         printf("len = %d", strlen(a));
  7.        
  8.        
  9.         return 0;
  10. }
复制代码


结果是 13 12
这样比较就明显了
回复 使用道具 举报
围观学习了
回复 使用道具 举报
好溜。。。
回复 使用道具 举报
strlen函数也是从第一个字符开始计算直到'\0'结束符。
如果你定义了一个字符串"abc\0d”,用strlen函数计算一下你就明白了。
回复 使用道具 举报
sizeof是求字符个数吧
回复 使用道具 举报
围观学习啦
回复 使用道具 举报
不断学习中,,,,,,,
回复 使用道具 举报
围观学习中
回复 使用道具 举报
strlen函数的实现,是用字符是否为\0作为判断条件,所以遇到\0就会停止
回复 使用道具 举报
一个是到\0结束  一个是全部都算上.
回复 使用道具 举报
465096445@qq.co 来自手机 中级黑马 2015-6-2 23:01:47
12#
这和java有关系吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马