首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

sizeofsizeof与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运算符返回的是数据类型的字节数,而不是表达式的值

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

    _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.1K30

    sizeof应用的小陷阱

    本篇笔记主要介绍在项目开发中,使用sizeof的一个要注意的地方。...sizeof作用就是返回一个对象或者类型所占的内存字节数。返回值是size_t,这个值依赖于编译系统,一般在嵌入式中我们常见的是返回int型....如果将sizeof的返回值付给一个类型不符的变量,MISRA 规则会报警告。还有一点要注意,C99标准规定,函数、不能确定类型的表达式以及位域(bit-field)成员不能被计算sizeof值。...u8test1; uint16_t u16test2; uint32_t u32test3; }strTestCnt_Type; strTestCnt_Type strTestCntt; 那么用sizeof...由以上测试可以看到sizeof的返回值在不同的平台上不有不同的结果,在实际应用中一定要注意,尤其是在32位系统上,一定要小心应用sizeof,以免引起错误。这就是传说中的字节对齐啊!

    77180

    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 cout<<sizeof...(A)<<endl<<sizeof(B); 22 return 0; 23 } 上述程序的输出结果是8和16....2了,所以编译器开始在char的后面填充3个字节,使得int相对于A的偏移量是4,来满足准则2,然后结构体的总大小就是1(char)+3(填充)+4(int)=8,同时满足了准则3,不用再填充了,所以sizeof

    1K90
    领券