首页
学习
活动
专区
圈层
工具
发布

sizeof,sizeof与strlen的区别

一.sizeof介绍 sizeof是一个关键词也是操作符,专门用来计算类型或者变量大小,其实sizeof也可以计算数组的大小,单位都是字节。...sizeof操作符的操作数可以是类型,也可以是变量或者表达式。 sizeof(类型) sizeof 表达式 sizeof的操作数如果不是类型,是表达式的时候,可以省略掉后边的括号。...sizeof后边的表达式是不真实参与运算的,根据表达式的类型来得出大小。 sizeof的计算结果是size_t类型的。...;//a是变量的名字,可以省略掉sizeof后边的() printf("%zd\n", sizeof(int)); printf("%zd\n", sizeof (3 + 3.5)); return...(arr)); return 0; }//返回40 1.1sizeof中表达式不计算 在sizeof运算符中,表达式不会被计算,因为sizeof运算符返回的是数据类型的字节数,而不是表达式的值

42110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    _countof和sizeof

    _countof和sizeof     最近在网上搜代码,找到一些不错的源码,作为我的比赛项目的参考。不过看代码的时候发现一个很重要的问题,很多人忽略(包括我经常看的XX的视频,还有我自己)。...所以in bytes的时候,传入sizeof(szBuf)就行了。比如我在《 sqlite的C语言使用 》讲过的sqlite3_prepare函数,第三个参数就传入sizeof(zSql)。    ...在没开启uncide的情况下,就算sizeof和_countof用混了,也不影响程序最终运行。...因为结果都是256.     2.在开启了宽字节UNICODE的时候     sizeof(szBuf) == 512     _countof(szBuf) == 256     两者不一样了。...应该传入_countof(strDir)可是我们现在传入的是sizeof(strDir),传成了字符数组占用空间的大小。调试运行看: ?

    1.3K30

    sizeof(结构体)的计算

    摘要: 经常被计算结构体的sizeof给搞晕,于是找了个时间,静下心来,搞定它。 一、为什么结构体计算这么乱?...4、C++中类的可以看做是特殊的结构体,所以类的sizeof的计算和结构体是一样的。 三、下面拿具体的程序来详细说明: 1 // sizeof(结构体).cpp : 定义控制台应用程序的入口点。...char a; 16 A a1; 17 char b; 18 }; 19 int _tmain(int argc, _TCHAR* argv[]) 20 { 21 coutsizeof...(A)sizeof(B); 22 return 0; 23 } 上述程序的输出结果是8和16....2了,所以编译器开始在char的后面填充3个字节,使得int相对于A的偏移量是4,来满足准则2,然后结构体的总大小就是1(char)+3(填充)+4(int)=8,同时满足了准则3,不用再填充了,所以sizeof

    1.2K90
    领券