【分享(笔试常考易错)】sizeof求数组长度的剖析心得

原创 2016年05月30日 17:13:50
#include <stdio.h>
#include <assert.h>
void fun(int arr[], int len)
//void fun(int *arr)整型数组相当于用指针表示的地址
{
 printf("---%d\n", sizeof(arr));   /*传参过来的是整个数组,4*10=40  */
 printf("---%d\n", sizeof(arr[0]));   /*首元素是int 型,4字节*/
 printf("---len = %d\n", sizeof(arr) / sizeof(arr[0]));  /*  40/4=10   */
}
int main()
{
 int arr[10];
 fun(arr, sizeof(arr) / sizeof(arr[0]));      /*调用函数*/
 /*sizeof求长度求的是类型大小,与字符串本身无关*/
 printf("%d\n", sizeof(arr));   /*数组arr的类型是int型,4字节*/
 printf("%d\n", sizeof(arr[0]));  /*首元素arr[0]是int 型,4字节*/
 printf("len = %d\n", sizeof(arr) / sizeof(arr[0]));   /* 4/4=1*/
 
 system("pause");
 return 0;
}

wKioL1YrRK-SgMTVAAC8sSZBUEQ312.jpg

        所以,在求数组的长度时,要么可以用strlen来求,要么用sizeof时注意必须要用函数调用实现,否则求出的长度可能有误。

sizeof获取数组长度

昨天开始看《算法导论》这本书,第一个算法就是(直接)插入排序,根据书里给出的伪代码写出了C语言代码,也根据自己的理解重新写了一个。虽然实现了算法的基本要求,但有些细节没有处理好,今天就来完善一下。 在...
  • u011852211
  • u011852211
  • 2016年10月06日 21:17
  • 6578

sizeof() 求数组长度

#include using namespace std;//get a length of the array//=======================可以结果正确的结果 :6 ======...
  • iamlijiangtao
  • iamlijiangtao
  • 2009年10月13日 20:55
  • 2143

用sizeof求二维数组的行列大小

#include "stdio.h" #include "conio.h" #define M 2#define N 3main() { int a[M][N]; 
  • lujianfeiccie2009
  • lujianfeiccie2009
  • 2010年11月25日 11:15
  • 13037

不使用sizeof求得数组长度

在c语言中,经常使用sizeof取得数组的长度。
  • bdss58
  • bdss58
  • 2014年11月01日 19:33
  • 815

sizeof()计算数组结构体类大小长度

sizeof()是一个操作符,用来计算长度的,下面程序详细解释了数组,字符,结构体,类等的长度计算方法 // sizeof.cpp : Defines the entry point for the ...
  • zhangjikuan
  • zhangjikuan
  • 2015年06月27日 14:13
  • 3931

关于使用sizeof()求数组的长度

看征服C指针,在p131关于sizeof()求数组长度这一zhi
  • u012810362
  • u012810362
  • 2014年04月20日 11:46
  • 473

c中自定义函数通过sizeof来输出数组的长度为何不正确?【原创】

这两天,在学习C语言的时候遇到一个bug。后来就在segmentfault提问,通过网友的回答也就解决了这个问题。提问的问题链接是:c中自定义函数通过sizeof来输出数组的长度为何不正确? ...
  • jiandanokok
  • jiandanokok
  • 2016年01月14日 15:20
  • 1907

Java笔试常考知识点

1.获得Class对象的三种方式 // 1. 根据给定的类名来获得  用于类加载 String classname = "cn.itcast.reflect.Person";// 来自配置文件 Cl...
  • pengpeng2395
  • pengpeng2395
  • 2016年10月18日 16:58
  • 571

校招笔试面试中Linux常考内容

对Linux只是个人兴趣爱好,在之前稍微接触了一点,学校对这部分内容的学习安排在大三下学期,而自己又要现在准备实习,许多公司对操作系统和Linux的考察又比较多,无论是在笔试中还是面试中;算是自己总结...
  • zhang_guyuan
  • zhang_guyuan
  • 2017年03月05日 15:16
  • 1050

linux 内核源码分析 - 获取数组的大小

#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))   测试程序: #include #include struct dev { int...
  • zhangxxxww
  • zhangxxxww
  • 2014年05月08日 20:14
  • 1560
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【分享(笔试常考易错)】sizeof求数组长度的剖析心得
举报原因:
原因补充:

(最多只允许输入30个字)