黑马程序员技术交流社区
标题: 求数组的字节数 [打印本页]
作者: 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 |