请问这两个表达式的结果是什么?

as_900 2018-06-09 03:31:40
int a=14;

int t1 = a++;

int t2 = ++a;

t1 的结果我知道,是14,是 a=14 先赋值给 t1,然后在运算 +1,所以 t1=14;

请问下 t2 的结果是什么?
怎么计算的
...全文
1154 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
张天星 2018-06-23
  • 打赏
  • 举报
回复
a++ 赋值给t1之后,t1=14,a=15.
这时候++a先算,a=16;t2=16
XXXY777 2018-06-21
  • 打赏
  • 举报
回复
16
因为a自增后在t2中的a就为15,然后自增为16再赋值给t2所以t2为16
赵4老师 2018-06-14
  • 打赏
  • 举报
回复
引用 10 楼 lxw_2009 的回复:
[quote=引用 7 楼 zhao4zhong1 的回复:] 不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
不懂,我觉得对于一个新手来说有个人指点一下会好一些,模棱两可会对编程失去信心[/quote] 理解讨论之前请先学会如何观察http://edu.csdn.net/course/detail/2344 C语言指针与汇编内存地址-一.代码要素
lxw_2009 2018-06-13
  • 打赏
  • 举报
回复
引用 7 楼 zhao4zhong1 的回复:
不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
不懂,我觉得对于一个新手来说有个人指点一下会好一些,模棱两可会对编程失去信心
lxw_2009 2018-06-13
  • 打赏
  • 举报
回复
t1是14,但是内存里面此时a=15,再计算t2时是用a计算的,所有t2=++a是16;
Canglin_1998 2018-06-13
  • 打赏
  • 举报
回复
++是自增运算符,放在变量前后的意义不一样 放在变量前是变量先加1,放在变量后是先执行其他操作再加1 就像这个问题: int a = 14; int t1 = a++; //a先赋值给t1再加1,所以 t1 = 14, a = 15 int t2 = ++a; //a原来的值是15,先加1是16,然后再赋值给t2, 所以 t2 = 16 类似的还有自减运算符 --
AlbertS 2018-06-13
  • 打赏
  • 举报
回复
不出意外,t2是16
qq_42443978 2018-06-12
  • 打赏
  • 举报
回复
int a=14; int t1 = a++; int t2 = ++a; 你可以把它看成是 int a=14; int t1=a,a=a+1; a=a+1,int t2=a; 所以t1=14,t2=16 至于a++和++a为什么会出现自增和赋值先后顺序不同是操作符重载实现的,如果学c++的话老师一般都会把这个拿来做操作符重载的一个例子。
赵4老师 2018-06-11
  • 打赏
  • 举报
回复
不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
MonGo17 2018-06-10
  • 打赏
  • 举报
回复
运算符++用在变量前表示先将该变量+1再使用,如果用在变量后表示先使用该变量再+1 所以t1算完后,a=15,在计算t2=++a时,a先加1等于16,再赋值给t2,所以t2=16.
zhouqunhai 2018-06-10
  • 打赏
  • 举报
回复
t2为,因为t1为15,而t2 = ++a,a先自增再赋值给t2
dululululu 2018-06-10
  • 打赏
  • 举报
回复
int a=14; int t1 = a++; int t2 = ++a; 正如你所知道的,开始运行后t1=a++所以t1的值是在运行一次之后在自增所以t1=14,a的值增1,为15, t2=++a,由运算法则来计算,在为t2赋值前,a先自增,所以a =16,t2=16 可以运行一遍,这样子更明确哟!
自信男孩 2018-06-09
  • 打赏
  • 举报
回复
t2的结果和计算t1时正好相反,先计算i +1,再将新的值赋值给t2
paschen 2018-06-09
  • 打赏
  • 举报
回复
a先自加1,再赋值给t2,自加前a为15,自加后a为16,赋值给t2,t2为16
赵4老师 2018-06-09
  • 打赏
  • 举报
回复
理解讨论之前请先学会如何观察! 计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构…… 对学习编程者的忠告: 多用小脑和手,少用大脑、眼睛和嘴,会更快地学会编程! 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步Debug版对应汇编一行! 单步Debug版对应汇编千行不如单步Release版对应汇编一行! 不会单步Release版对应汇编?在你想单步Release版C/C++代码片断的前面临时加一句DebugBreak();重建所有,然后在IDE中运行。(一般人我不告诉他!) VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。 对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。 不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实! http://edu.csdn.net/course/detail/2344 C语言指针与汇编内存地址-一.代码要素

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧