原标题:你可能对 sizeof(i++) 有点误解。。。

各位,今天还是按照惯例给大家分享一个C语言容易出现的小错误,这也是跟sizeof有关的,问题虽小,却可管中窥豹,话不多说,代码先行:

# include

intmain

{

inti;

i = 8;

printf( "%dn",i);

printf( "%dn", sizeof(i++));

printf( "%dn",i);

return0;

}

问输出的值是什么?如果你上来就说8,4,9 那就错了。当然第一个是8没问题,第二个是4也没问题(32位int类型为4),主要错在了第三个数,其实 本题着重考察的是我们对sizeof的理解。

首先我们要澄清一个误区:sizeof不是函数,不是函数,不是函数!重要的话说三遍,它是一个关键字,更准确地说它是一个单目运算符!其运算符的含义是:求出对象在计算机内存中所占用的字节数。根据C99的规范,sizeof是一个编译时刻就起效果的运算符,在其内的任何运算都没有意义,所以sizeof(i++)在编译的时候被翻译成sizeof((i++的数据类型)),也就是4(32位int),换言之编译时sizeof(i++)就被4取代了!因此当程序最终执行的时候,sizeof里面不会有任何的i++运算,所以i的值是不变的,这就是本题想考察的点了。

当然,关于sizeof还有其他许多用法和需要注意的地方,比如它的 对象可以是表达式或者数据类型名,当对象是表达式时,括号可省略等等。。。同时sizeof在各种笔试面试中出现的几率非常高,希望大家对它进行熟练掌握,今天这里我们就不展开了,就到这里吧,感谢各位的耐心阅读。

欢迎大家留言区讨论哦!

Wink !

期末考试 来啦!

对于 printf , 你确定你很熟?

关于数组的一个小陷阱!

空指针 到底是什么意思?

12月编程语言排行榜 来了!

为什么用 if(0 == x) 而不是 if(x == 0) ?

12月 集成开发环境(IDE)排行榜来了!

假如计算机是中国人发明的,那代码应该这么写?

C++写的一个好玩的猜数字游戏

sizeof 你真的弄明白了吗? 来看看这个例子

编程能力的4种境界,你到哪一级了?

请大家来给这几行C语言代码找找茬

一个简单但能考察C语言基础的题目,试试?

八大排序算法 ,C语言详细版讲解,硬核推荐! ! !

堆和栈的区别(非常详细,干货收藏! )

C语言中“悬空指针”和“野指针”究竟是什么意思?

这绝对是C语言的一个经典例题了!

这两个C运算符你可能没用过,但却很有用返回搜狐,查看更多

责任编辑:

printf sizeof c语言,你可能对 sizeof(i++) 有点误解。。。相关推荐

  1. c语言面试题sizeof,c语言面试题之sizeof

    备忘:mybatis 3的使用记录 这是一篇记录.mybatis是一个部分模仿ORM的framework.是一个介于ORM和原始JDBC的框架.既可以提供ORM的操作对象的特性,又能从详细地控制最终的 ...

  2. C语言再学习 -- 关键字sizeof与strlen

    sizeof  一.简单介绍 sizeof 是 C 语言的一种单目操作符,如 C 语言的其他操作符++.--等.它并不是函数.C 规定 sizeof 返回 sieze_t 类型的值.这是一个无符号整数 ...

  3. c语言sizeof啥作用,C语言中sizeof什么意思

    C语言中"SIZEOF(INT)"是什么意思?有什么作用? C语言中,sizeof是一个? sizeof是C语言中保留关键字,也可以认为是一种运算符,单目运算符:sizeof是计算 ...

  4. sizeof c语言是什么表达式,C 语言 sizeof() 运算符

    C 语言 sizeof() 运算符 sizeof() 运算符在C语言中使用时,它决定表达式的大小或在char大小的存储单元数量中指定的数据类型.sizeof() 运算符包含一个操作数,该操作数可以是表 ...

  5. C语言----C语言中sizeof的用法

    [原文链接] sizeof是计算变量在内存的占空间的大小,单位是字节 (1)使用sizeof查看数据类型占空间大小 如下,可以查看C语言中各种基本数据类型的占用空间的大小 # include < ...

  6. C语言 strlen(str)和sizeof(arr)的区别

    C语言 strlen(str)和sizeof(arr)的区别 1. strlen() strlen(str):表示是运算符,而不是一个函数.sizeof返回的值表示的含义如下: 该函数实际完成的功能是 ...

  7. c语言求占用内存sizeof,C语言中sizeof的用法

    定义: sizeof是神圣的sizeof,它是C / C ++中的运算符. 简而言之,其功能是返回对象或类型占用的内存字节数. MSDN上的解释是: sizeofkeyword给出字节,关联的类型(包 ...

  8. sizeof运算符_C编程中的sizeof()运算符

    sizeof运算符 Like many other programming languages, C also comes with some pre-defined functions. sizeo ...

  9. c语言printf啥意思,printf在c语言中的意思是什么呢

    在C语言中printf( )是专门用于输出的2113语句.5261 用法如下:1.printf()函数是格式化输出4102函数,一般用于向标准输出设备按1653规定格式输出信息.2.printf()函 ...

最新文章

  1. C# 利用SharpPcap实现网络包捕获嗅探
  2. 国际域名转出ICANN投诉
  3. “众所周知,视频不能P”,GAN:是吗?
  4. PyCharm常用快捷键大全
  5. uni-app微信小程序获取手机号;微信小程序获取手机号,获取到后需要进行解密;微信小程序获取手机号失败 Error:该appId没有权限
  6. 变频器输出功率_100米的深井泵,如何接变频器,怎样控制
  7. js里面关于IE和万恶的IE6的判断
  8. 编写程序对给定的有向图(不一定连通)进行深度优先遍历_从零开始学习数据结构gt;图的非连通遍历...
  9. 数据包络分析例题解析(含MATLAB代码)
  10. iOS 强制屏幕旋转
  11. QML学习之基本元素Rectangle, Text, Button,Image介绍
  12. 2021.03.12——学习公司项目
  13. 人力资源外包(HRO)服务市场现状研究分析-
  14. 监控局域网机器的屏幕
  15. 汇编指令及其英文全称
  16. APP应用渗透测试思路
  17. 学习python,我使用代码悄悄集齐了五福~哎嘿嘿
  18. 如何防止CDN防护被绕过
  19. 手把手教你用图灵机器人做微信公众号自动回复助手
  20. 【苦瓜菜谱】牛肉饭(可比吉野家牛肉饭哦)∣

热门文章

  1. JBoss AS 7类加载说明
  2. Spring Social入门
  3. java方法2数据求和_Leet Code 2 Add Two Numbers - 链表表示的两个数求和 - Java
  4. excel 时间戳_我没有Excel基础,可以学Power BI吗
  5. vim 寄存器中的 ^@,^M,^J
  6. Linux 命令之 loginctl -- 查看系统当前登录的用户
  7. python操纵excel的方法_python操作Excel的几种方式
  8. 递归算法 流程图_什么是算法?如何学习算法?算法入门的学习路径
  9. maya室内模型_C4d和3dmax、maya相比有什么优势?
  10. 【安卓开发 】Android初级开发(十一)Android中多线程