YsGer 发表于 2015-5-1 19:48:33

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

#include <stdio.h>

int test(int *n)
{

        return (sizeof(n)/sizeof(n));
}

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

请问上面的代码不能求得int型数组的大小!:ton:
请教各位这是什么原因?

牡丹花下死做鬼 发表于 2015-5-1 21:24:41

test(s)s是你的数字第一个元素的地址
然后再test函数里测得就是这个元素的大小我目测输出结果是1

shorey 发表于 2015-5-1 21:44:03

函数接收的是一个int型指针,是不会算出数组的大小的……

迷雾少年 发表于 2015-5-2 06:47:22

sizeof算不出数组长度的,,,

柯天翔 发表于 2015-5-2 16:35:09

在turbo C里面结果应该是2,VC++里面是1。

Mr.屎壳螂 发表于 2015-5-2 18:19:41

数组传进去做参数的时候是当做地址处理~return 的值是两个指针的比的值,也就是1.
所以你最后输出的是1.而不是数组长~
页: [1]
查看完整版本: 关于C语言中sizeof求int型数组大小的问题