以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 C/C++编程思想 』 (http://bbs.xml.org.cn/list.asp?boardid=61) ---- 求数组长度 (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=40398) |
-- 作者:fangel2000 -- 发布时间:11/22/2006 10:39:00 PM -- 求数组长度 我想在一个函数中求一个数组的长度 void testPalindrome(char s[]) 为什么这样的代码不可以呢,不行的话那应该怎样写呢? |
-- 作者:卷积内核 -- 发布时间:11/23/2006 9:06:00 AM -- 上面应该去掉s[length]=="/0"的情况。 可以直接这么写: int length(int s[]) |
-- 作者:fangel2000 -- 发布时间:11/23/2006 10:06:00 AM -- 哦,谢谢了 |
-- 作者:flyhigher -- 发布时间:12/9/2006 6:46:00 PM -- int length(int s[]) { return sizeof(s[])/sizeof(s[0]); } 这样好行不行吧。 不知道这位大虾用的什么编译器,反正 vc好像编译不通过。
|
-- 作者:longshentailang -- 发布时间:12/9/2006 9:17:00 PM -- return sizeof(s[])/sizeof(s[0]); 应该改为 return sizeof(s)/sizeof(s[0]); 因为在函数中,数组参数退化为指针,而指针的大小为4个字节。比如下面的内容永远输出为4 void fun(char a[1000]) |
-- 作者:longshentailang -- 发布时间:12/9/2006 9:23:00 PM -- 我不知道你那段代码具体出了什么错,但我测试的时候你那个函数是对的。你是否可以贴一下你的完整代码? 我的测试用例如下:(测试环境:VC++ 6.0 和 Dev-C++ 4.9.9.2) #include <iostream> using namespace std; void testPalindrome(char s[]) } int main(void) |
-- 作者:fangel2000 -- 发布时间:12/10/2006 5:35:00 PM -- 呵呵,这个算法我刚也验证过了,是正确的, 但是很迷惑的是上次出错了,我也不知道出现什么问题了.呵呵 |
-- 作者:flyhigher -- 发布时间:12/10/2006 5:42:00 PM -- 我觉得关键是实参的最后一个有效字符之后是否有'\0' |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |