VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 260|回复: 8

[已解决]求数组的大小main函数中没问题,自定义函数就出错,求助

[复制链接]
90_avatar_middle
最佳答案
0 
在线会员 发表于 2022-3-9 00:11:41 | 显示全部楼层 |阅读模式
如附图所示
最佳答案
46_avatar_small
2022-3-9 15:28:25
本帖最后由 screen_ok 于 2022-3-9 15:30 编辑
legend_L 发表于 2022-3-9 13:56
那我的代码为什么数值不对呢


不是数值不对,是你的理解有偏差!

  1. void ceshi(char des[])
  2. {
  3.         int a = sizeof(des);
  4. }
复制代码


这里的“des”是“字符数组的首地址”,并不是含有100个成员的数组。在32位编程模式下,一个存储地址的变量(在C语言中称为指针),就是占用4个字节。

C语言中“sizeof”操作符的作用是——返回一个对象或类型名的长度,返回值的类型为size_t,长度的单位是字节。

这个是语言固有的,如果你暂时理解不了,就记住它!
42]7REM1{6WG~[]%2NASAV4.png
DWRAL{8VQGD48~V2AO`YNYE.png




上一篇:2个关联的COMBO,第一个COMBO的索引,决定第二个COMBO的条目个数
下一篇:如何在CListView中使用CListCtrl的派生类
46_avatar_middle
最佳答案
7 
在线会员 发表于 2022-3-9 08:09:34 | 显示全部楼层
本帖最后由 screen_ok 于 2022-3-9 11:23 编辑

必须得有中文!!!
  1. typedef char ss[100];

  2. int ceshi(ss& s)
  3. {
  4.         return sizeof(s);
  5. }

  6. void main(void)
  7. {
  8.         ss s = "Hello!";
  9.         cout << sizeof(ss) << " " << ceshi(s) << endl;
  10. }
复制代码
90_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-3-9 10:54:41 | 显示全部楼层
screen_ok 发表于 2022-3-9 08:09
必须得有中文!!!

不理解跟中文有什么关系。是结构体的问题吗
46_avatar_middle
最佳答案
7 
在线会员 发表于 2022-3-9 11:26:14 | 显示全部楼层
legend_L 发表于 2022-3-9 10:54
不理解跟中文有什么关系。是结构体的问题吗

回贴中只有代码不让发!跟你写的代码没关系!求数组的大小main函数中没问题,自定义函数就出错,求助
90_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-3-9 11:38:24 | 显示全部楼层
screen_ok 发表于 2022-3-9 11:26
回贴中只有代码不让发!跟你写的代码没关系!

哈哈哈哈哈,谢谢指教,你的代码我运行确实没问题,可是我还是不太理解typedef在这里的作用,希望能进一步解释一下求数组的大小main函数中没问题,自定义函数就出错,求助
46_avatar_middle
最佳答案
7 
在线会员 发表于 2022-3-9 12:22:36 | 显示全部楼层
legend_L 发表于 2022-3-9 11:38
哈哈哈哈哈,谢谢指教,你的代码我运行确实没问题,可是我还是不太理解typedef在这里的作用,希望能进一 ...

typedef用来定义类型的同义词!

typedef char ss[100];

就是给 char [100] 起个名字,叫 ss !
90_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-3-9 13:56:44 | 显示全部楼层
screen_ok 发表于 2022-3-9 12:22
typedef用来定义类型的同义词!

typedef char ss[100];

那我的代码为什么数值不对呢
46_avatar_middle
最佳答案
7 
在线会员 发表于 2022-3-9 15:28:25 | 显示全部楼层    本楼为最佳答案   
bestAnswer
本帖最后由 screen_ok 于 2022-3-9 15:30 编辑
legend_L 发表于 2022-3-9 13:56
那我的代码为什么数值不对呢


不是数值不对,是你的理解有偏差!

  1. void ceshi(char des[])
  2. {
  3.         int a = sizeof(des);
  4. }
复制代码


这里的“des”是“字符数组的首地址”,并不是含有100个成员的数组。在32位编程模式下,一个存储地址的变量(在C语言中称为指针),就是占用4个字节。

C语言中“sizeof”操作符的作用是——返回一个对象或类型名的长度,返回值的类型为size_t,长度的单位是字节。

这个是语言固有的,如果你暂时理解不了,就记住它!
90_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-3-9 15:32:37 | 显示全部楼层
screen_ok 发表于 2022-3-9 15:28
不是数值不对,是你的理解有偏差!

好的,感谢解答
求数组的大小main函数中没问题,自定义函数就出错,求助
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2022-5-17 21:41

Powered by CcTry.CoM

© 2009-2021 cctry.com

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