鱼C论坛

 找回密码
 立即注册
查看: 4999|回复: 19

两个strlen的出的结果不一样为什么

[复制链接]
发表于 2013-5-4 11:01:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5.     char a[10];
  6.     char b[10];
  7.     //gets(b);
  8.     //scanf("%s",&a);

  9.     printf("%d %d",strlen(a),strlen(b));
  10.     //puts(a);
  11. }
复制代码


1111.png


为什么会这样?两个都是char (*)[10]类型的输出结果却不一样
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-4 11:12:17 | 显示全部楼层
sizeof 才是你想要的吧 sizeof 得到的结果就是一样的
另外 谁教你 a b 的数据类型是char(*)[10]的!!!!
a b 的数据类型是 char[10]

strlen
从参数指定的指针开始
向后扫描 直到找到一个char的内容是'\0'
返回'\0'到指定的指针的距离

你这里 两个数组里面都是垃圾值
不确定 '\0' 在哪里
结果不确定
而且会有数组越界的BUG

评分

参与人数 1鱼币 +1 收起 理由
Crazy迷恋. + 1 透彻

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-4 11:15:38 | 显示全部楼层

楼上说得对, 里面的内容不知是什么 。。。所以, 结果不一样。 因为strlen是求字符串长度的, 你定义的字符数组没有初始化, 结果当然不一样。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-5-4 11:28:29 | 显示全部楼层
我是师兄 发表于 2013-5-4 11:12
sizeof 才是你想要的吧 sizeof 得到的结果就是一样的
另外 谁教你 a b 的数据类型是char(*)[10]的!!!!
a ...

嗯,我把sizeof和strlen搞混了...
a,b的类型是char[10] ...
我从其他地方看键过char(*)[10],但记不清是不是这样定义的了,有点糊涂了,
该怎么定义才能使类型为char(*)[10]
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-4 11:35:32 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-4 12:00:30 | 显示全部楼层
&a
&b
的数据类型就是 char(*)[10]

想定义一个char(*)[10] 可以这样
char (*pArr)[10];
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-5-4 12:06:22 | 显示全部楼层
我是师兄 发表于 2013-5-4 12:00
&a
&b
的数据类型就是 char(*)[10]

原来如此.....
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-4 12:11:17 | 显示全部楼层
迷糊了,不清楚
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-4 22:37:49 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-9 16:25:09 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-9 16:26:20 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-9 16:28:17 | 显示全部楼层
真是难得给力的帖子啊。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-9 16:33:26 | 显示全部楼层
真是难得给力的帖子啊。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-9 16:38:18 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-9 16:40:37 | 显示全部楼层
激动人心,无法言表!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-9 17:07:27 | 显示全部楼层
二楼给力
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-9 17:08:21 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-9 17:10:39 | 显示全部楼层
我是VIP,我骄傲!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-9 17:27:55 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-9 22:09:10 | 显示全部楼层
那srlen()是的功能是什么?
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-29 11:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表