鱼C论坛

 找回密码
 立即注册
查看: 3876|回复: 5

关于C语言中sizeof求int型数组大小的问题

[复制链接]
发表于 2015-5-1 19:48:33 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>

int test(int *n)
{

        return (sizeof(n)/sizeof(n[0]));
}

int main()
{
        int s[100];
        printf("%d",test(s));
        return 0;
}

请问上面的代码不能求得int型数组的大小!:ton:
请教各位这是什么原因?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-5-1 21:24:41 | 显示全部楼层
test(s)  s是你的数字第一个元素的地址
然后再test函数里测得就是这个元素的大小我目测输出结果是1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-1 21:44:03 | 显示全部楼层
函数接收的是一个int型指针,是不会算出数组的大小的……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-2 06:47:22 | 显示全部楼层
sizeof算不出数组长度的,,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-2 16:35:09 | 显示全部楼层
在turbo C里面结果应该是2,VC++里面是1。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-2 18:19:41 | 显示全部楼层
数组传进去做参数的时候是当做地址处理~return 的值是两个指针的比的值,也就是1.
所以你最后输出的是1.而不是数组长~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-26 00:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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