C语言的 sizeof 关键字,它竟然只是一个运算符,不是函数

C语言的 sizeof 关键字,它竟然只是一个运算符,不是函数运算符有优先级别,例如加减乘除运算中,乘法和除法优先运算,然后,再到加减法。在写代码的时候,我们需要时刻提醒自己:我们写的代码不是给机器看的,是

大家好,欢迎来到IT知识分享网。

运算符有优先级别,例如加减乘除运算中,乘法和除法优先运算,然后,再到加减法。在写代码的时候,我们需要时刻提醒自己:我们写的代码不是给机器看的,是给人看的,我们需要和同事相互沟通,协同工作。所以,对于一些想优先运行的代码,我们就用“小括号”包含起来,就会优先运行小括号中的代码。

例如 c = a1 || a2 + b; 我们想先进行 a1 || a2 运算,用 a1 || a2表达式的结果再与b相加,最后的运算结果赋给c对象。但是,在C语言中,由于存在运算符优先级的规则,算术运算符比关系运算符的优先级高,所以,先运行a2+b运算,再把a2+b表达式的值与a1进行“逻辑或”运算。如下是测试的例子:

C语言的 sizeof 关键字,它竟然只是一个运算符,不是函数

测试运行的结果如下:

C语言的 sizeof 关键字,它竟然只是一个运算符,不是函数

可以看到,先进行a2 + b运算,该表达式的值是16,然后,16这个值与再与a1进行“逻辑或”运算,所以,结果是1。

我们想要先执行a1 || a2运算,那么,就必须用小括号来包含起来,确保小括号中的代码优先运算,所以,修改为:

int c = (a1 || a2) + b;

完整测试代码如下:

C语言的 sizeof 关键字,它竟然只是一个运算符,不是函数

测试运行的结果如下:

C语言的 sizeof 关键字,它竟然只是一个运算符,不是函数

注意:我们不提倡在代码中使用C语言默认的运行优先级,如果我们想让某一行代码优先运行,就必须用小括号包含起来,让小括号中的代码优先运行。

6 sizeof运算符

在C语言中定义了sizeof运算符,它是一个单目运算符,使用如下:

sizeof(T) — T可以是一种数据类型,或者一个变量

此时,获取T类型(或者变量)所占据的内存容量大小,单位是字节。例如 long 类型占据4个字节的空间,所以,sizeof(long) 获取long类型占据的空间大小,得到4个这个数值,程序测试例子如下:

C语言的 sizeof 关键字,它竟然只是一个运算符,不是函数

程序运行结果如下:

C语言的 sizeof 关键字,它竟然只是一个运算符,不是函数

可以看到,sizeof运算符返回了long类型的内存容量大小。sizeof运算符也可以获取一个变量占据的内存容量大小,程序测试例子如下:

C语言的 sizeof 关键字,它竟然只是一个运算符,不是函数

程序运行结果如下:

C语言的 sizeof 关键字,它竟然只是一个运算符,不是函数

可以看到,定义了double类型的变量d,然后,通过sizeof()运算符,可以获取该变量占据的内存容量大小。

总结

本章节,我们学习了按位与、或、异或和条件运算符、赋值运算符等操作。

这些知识点比较多,而且繁杂,那么,作者建议读者,要多动手、多思考;对于有疑问的知识,就尽量通过测试例子来验证。要自己亲手多敲代码,思考问题,验证问题。有任何疑问的地方,可以联系作者,一起讨论C语言的学习。

读者要仔细分析,掌握好每一个知识点,然后,自己总结出对该知识点的理解。自己总结出来的知识,理解才深刻,才是自己掌握的知识。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/46933.html

(0)
上一篇 2024-09-28 10:15
下一篇 2024-10-01 07:33

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信