首页 置换 选车 估价 问答 生活 经销商 车管所 汽车资讯 汽车销量 车牌查询 今日油价 天气预报
您的位置: 首页 > 生活 > 其他 > c语言sizeofunion用法(C语言中被冤枉的关键字sizeof)
c语言sizeofunion用法(C语言中被冤枉的关键字sizeof)
更新时间:2024-07-08 11:17:01

sizeof()关键字

  • sizeof()怎么用?很多刚刚接触sizeof总以为是一个函数,因为它后面有括号。接下来我们一起来剖析一下这个被冤枉的关键字。
  • 其实我们不知道他是32个关键字的其中一个,我们也可以利用其它的办法来确定他到底是不是函数,首先来看下面的代码:

c语言sizeofunion用法(C语言中被冤枉的关键字sizeof)1

int i=0;

(A)sizeof(int) ; (B)sizeof(i);

(C)sizeof int; (D)sizeof i;

可以很肯定的是(A)(B)的值都是4,那你想一想(C)(D)的值到底是多少呢?感兴趣的可以先在自己的编译器上打一下代码来验证自己的想法。

  • 在32位的系统中通过visual C 6.0或者任意编译器的调试我们其实都可以发现(D)的值也是4,到这里你是不是觉得很奇怪,为什么sizeof不用括号同样可以计算出来,同样的在这里你就应该把它和函数区分开来,很清楚地知道他其实真的不是函数,如果是函数你觉得吧后面的括号省略掉也可以运行吧?我们想不可能吧!
  • 最后我们来看看最后一个(C)的情况,我想如果不出意外的话应该是搬一起报错了吧?本着遇到错误就解决错误的心理,我们来探讨一下为什么他会出错,我们好好地看一下C答案表示的是什么意思:(C)sizeof int 这是什么玩意?int的前面加一个关键字?表示什么我们不知道,但是明显不正确,一般在int前面我们都会加 unsigned 、const 等关键字,但是真的不能加sizeof。

c语言sizeofunion用法(C语言中被冤枉的关键字sizeof)2

记住

  • sizeof在计算变量所占的空间大小时,括号其实是可以省略的。
  • 一般情况下sizeof是在编译的时候求值(C99计算柔性数组所占空间情况除外),所以sizeof(i )并不会引起什么坏的后果,但是没有意义呀,因为i和i 的类型一样,所以就没有必要写这样迷惑的代码。
  • “sizeof(i="123456")”,这样的代码也是不被允许的,因为i还是原来的值并不会在括号里面把它赋值为123456,总之你要注意的一点就是sizeof里面的括号不要哦有任何的运算符。

c语言sizeofunion用法(C语言中被冤枉的关键字sizeof)3

自测题

在这里我们一起来共同探讨几个比较有意思的C语言笔试题目如果你觉得毫无压力那么恭喜你,你对sizeof的理解以及比较透彻:int *p=NULL;

sizeof(p); 的值是多少?

sizeof(*p);呢?

int a[100];

sizeof(a);的值是多少?

sizeof(a[100]);呢? //注意是本列的代码

sizeof(&a);这样呢?

sizeof(&a[0]);还有这样的呢?

int b[100];

int fun (int b[100])

{sizeof(b);} 这样的值又是多少?

在这里还是很希望各位能够慢慢地把这几道笔试题做出来,技术就是不断的日积月累加油各位!

,
相关推荐RECOMMEND
贵州酸汤有什么好处(开展酸汤质量提升行动)
开展酸汤质量提升行动打造贵州酸汤第一质量品牌龙宗兴蒋文周贵州省黔东南州开展酸汤质量提升行动,打造酸汤质量品牌,有效推动了产业发展,同时使全州8万余刚刚脱贫的农村人口有了稳定的收入来源,进一步巩固了脱贫...
3月24日早安励志心语(3月29日周二早安祝福语)
3月24日早安励志心语?1.天顺其自然,地顺其性;人顺其变,都是刚好;心中有花开,人生春常在愿你晨起有幸福,梦里有微笑朋友,早安,接下来我们就来聊聊关于3月24日早安励志心语?以下内容大家不妨参考一二...
世界阿尔茨海默病日国际失智症日(9月21日是阿尔兹海默症日)
家婆三年以前患了阿尔兹海默症,手一直在发抖,语言现在已经组织不起来了,有时候一句话会只有一个字是靠谱的,总是步履蹒跚的样子让我们好担心。吃饭只能给她温热好了,冷热都不知。现在只记得自己的小儿子,其他三...
长的跟蜈蚣有点像的虫子叫什么(长得像蜈蚣的虫子叫什么)
长的跟蜈蚣有点像的虫子叫什么?每到夏季天气炎热的时候,家里厨房、卫生间等潮湿的地方便会出现一种长得像蜈蚣的虫子,到处乱爬很是烦人,那长得像蜈蚣的虫子叫什么?家里有蚰蜒怎么办?,现在小编就来说说关于长的...
燕窝是靠什么形成的(燕窝的形成过程)
燕窝的形成过程,燕窝是一种生长于东南亚、印尼、新加坡和泰国一带海域、喜欢群体栖身于海南悬崖峭壁的石洞内,一种叫“金丝燕”的雀鸟,利用苔鲜、海藻和柔软植物织维混合他们的羽毛和唾液胶结而成的燕窝,作为藏身...
人工增雨可以到达什么程度(人工增雨原理和条件)
人工增雨可以到达什么程度?人工降雨运用云和降水物理学原理,通过向云中撒播降雨剂,使云滴或冰晶增大到定程度,降落到地面,形成降水,形成降水的两条件有:,下面我们就来说一说关于人工增雨可以到达什么程度?我...