黑马程序员技术交流社区

标题: 求数组的字节数 [打印本页]

作者: laotang013    时间: 2015-10-14 23:34
标题: 求数组的字节数
//
//  main.c
//  返回一个整型数组的字节数
//
//  Created by all on 15/9/28.
//  Copyright © 2015年 all. All rights reserved.
//

#include <stdio.h>
int returnSizeofArr(int arr[])
{//数组作为函数的参数传递的是数组的地址,所以sizeof(arr)中的arr是数组中的第一个元素的地址
    //sizeof(arr)计算的是地址的字节数。
    arr[0]=10;
    return sizeof(arr);//因为传过来的是地址所以每次打印的值都是8个。
}
int main(int argc, const char * argv[]) {
    int arr[2];
    printf("占用的字节数 %d\n,arr[0]==%d\n",returnSizeofArr(arr),arr[0]);
    return 0;
}



作者: knight_zfh1288    时间: 2015-10-15 00:28
这个题目我见过,我也没做出来,
你定义的函数,就像你注释上写的,“return sizeof(arr);//因为传过来的是地址所以每次打印的值都是8个。”数组长度在数组定义的时候就应该定义好的,你这样直接传过来一个数组指针,其实就是打印的数组指针所占的8个字节。并不是数组所占的字节,所以你定义这个函数应该求不出来。我也不知道怎么求。但是如果直接在main函数中这样写的话,就可以求出来,不知道为什么。
也请大神们解答一下。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2