BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #86212同步于 2015/3/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[问题]急求!弱问,一个数组的问题

yu4659
2015/3/30镜像同步33 回复
新问题。。。 char a[] = {'6','5'}和char b[] = {"65"};是一个意思?就是数组a和b是一样的?? 那char c[] = {'65'}运行为啥只显示字符5的十进制呢?怎么不是6?? 还有。。int d[] = {'65'};//13877 程序运行显示的d[0]为13877是怎么来的呢?。。。字符65的整型表达??。。。。但是我换成75 是14133。。。66是13878。。找不到规律。。不懂求指教。。谢谢了 ----------------------------------------------------------------- const int length = 50; char A1[length] = {1,3,5,8,44}; char A2[5] = {2,3,7,15,77}; int a= strlen(A1); int b= strlen(A2); 为啥a是5,b是13 啊???? 这个13是个什么鬼??》。。。。。。。。。。。。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
yu4659机器人#1 · 2015/3/30
还有14的输出。。b 这是为神马??????????????????????????????????????????? 不科学啊。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
moonfighting机器人#2 · 2015/3/30
strlen从首地址开始计算长度直到遇到第一个'\0'终止 理论上来说, 你直接对A1 A2用strlen 结果是不确定的,因为你不知道第一个'\0'出现在哪, 结果是5,13,14都是有可能的
yu4659机器人#3 · 2015/3/30
貌似 是因为 char A2[5] = {2,3,7,15,77}; 越界了。。。。。。。。。。 我觉得我的错误不止如此。。。。。。。。。改成[6]就可以了。。。。。。。。。。 数组的定义里面 {}大括号的这种末尾也有一个隐含的\0吗?。。。我一直以为只有“”的时候有。。。。。。。。。 请问你知道{}和“”这么定义有啥区别么。。。。。。 还有{2,3,7,15,77} 和{'2','3','7','15','77'}的区别呢?? 【 在 moonfighting 的大作中提到: 】 : strlen从首地址开始计算长度直到遇到第一个'\0'终止 : 理论上来说, 你直接对A1 A2用strlen 结果是不确定的,因为你不知道第一个'\0'出现在哪, 结果是5,13,14都是有可能的
candywang机器人#4 · 2015/3/30
结束符\0的问题 你把A2长度变为6,后面加个'\0',就能得到5了
candywang机器人#5 · 2015/3/30
之所以A1不返回奇怪的结果,是由于 char A1[length] = {1,3,5,8,44};length是50,那么A1后面没有显示的给出的值就被初始化为0,调用strlen求长度的时候,44后面就遇到了结束符。
yu4659机器人#6 · 2015/3/30
那 请问你知道{}和“”这么定义有啥区别么。。。。。。 还有{2,3,7,15,77} 和{'2','3','7','15','77'}的区别呢?? 十分感谢 【 在 candywang 的大作中提到: 】 : 之所以A1不返回奇怪的结果,是由于 char A1[length] = {1,3,5,8,44};length是50,那么A1后面没有显示的给出的值就被初始化为0,调用strlen求长度的时候,44后面就遇到了结束符。
nuanyangyang机器人#7 · 2015/3/30
楼主的电脑冒烟了吗?
yu4659机器人#8 · 2015/3/30
暖神不要嘲笑我了。。。。我要冒烟了。。。 【 在 nuanyangyang 的大作中提到: 】 : 楼主的电脑冒烟了吗?
nuanyangyang机器人#9 · 2015/3/30
【 在 yu4659 的大作中提到: 】 : 暖神不要嘲笑我了。。。。我要冒烟了。。。 简单的解释就是你的第二个数组是定长5的,但这5个元素却没有一个是0。C语言以'\0'作为字符串的终止符,strlen没有找到'\0',自然会继续往后找,之后的内存空间就不是这个数组的一部分了。C语言对非法的指针的操作是不做规定的,也就是,什么都可能发生,从什么都不发生到机器冒烟都有可能。