一直认为输出应该是100, 但实际却是4(即sizeof(char*)). 现在,唯一让我庆幸的是我在函数参数中使用数组, 并且依赖sizeof的结果的时候极少.
posted on 2006-10-08 09:17 局部变量 阅读(3550) 评论(10) 编辑 收藏
呵呵,这个问题确实是。 写char []或char *一样的,数组引用比较烦 char (&arg)[128]。 我一般就是把他作为提示用用,而不用于约束和检测。
不要庆幸了,面壁思过好了^_^
不好意思的说,前几天写代码时也犯过类似的错误.
数组名在作为函数参数传递被解析为指针指针
你如果在main里面,sizeof结果就是100了
为了测试你是否真的搞明白了,在测试你一个例子: void TestChar(char str[100]) { strcpy(str, "12"); } void Test() { char szTest[] = { "asdf"}; TestChar(szTest); MessageBox(szTest); } 显示什么? :)
to sjdev: 呵呵,这些我还是比较清楚的 to 晓寒: 好像你和我说的是两个问题, 不过我还是小心的测试了一下, 输出和我预计的一致:)
给解释一下吧 不明白
没有什么可解释的, 就是编译器对一些情况的处理方式, 知道是这样就行了
你们当变量是菜鸟哈:)
Copyright © 局部变量