codeblocks 中z=2;z=z++,z的结果仍为2?求大神解答!! 10C

codeblocks 中z=2;z=z++,z的结果仍为2.?
求大神解答!!!
请大家先在codeblocks运行一下再回答。

int z = 2;

z = z++;

cout<<z;//输出仍为2

老师让找出原因???

c c++
0

29个回答

z=z++这一句里z++把z加到3,然后返回2赋值给z,因此输出仍为2.
不妨这样改一下:
int z=2;
int t=z++;
z=t;
cout<<z;

0
w_weilan
wu-kan 回复qq_36316736: c++标准没有规定自增是在表达式中自增还是表达式整个算完之后在自增,所以不同编译器有区别的
11 个月之前 回复
qq_36316736
武志祥 但在vc中结果是3啊
一年多之前 回复

z++是先参加程序的运行再+1

0
qq_36316736
武志祥 但最后结果不应该是3吗
一年多之前 回复
  Code:
   0:   iconst_0     //0放到栈顶
   1:   istore_1    //把栈顶的值保存到局部变量1,也就是i中
   2:   iload_1     //把i的值放到栈顶,也就是说此时栈顶的值是0
   3:   iinc    1, 1  //注意这个指令,把局部变量1,也就是i,增加1,这个指令不会导致栈的变化,也就是说局部变量1,即i此时为1了。
   6:   istore_1     //把栈顶的值(0)保存到局部变量1,也就是让i为0了,所以最后i为0
   7:   getstatic   #2; //Field java/lang/System.out:Ljava/io/PrintStream;
   10:  iload_1
   11:  invokevirtual   #3; //Method java/io/PrintStream.println:(I)V
   14:  return
1

您好,我虽然没试过,但是这个vc及其他翻译器是不一样的,您选择c或者c++编译前后顺序都是不一样的,
虽然c++可以说是c的扩张。所以直接原因是代码本该等于2(在codeblock中),根本原因是编译器的原因,
老师出这个题目的目的要的就是您能认清编译器的不同,结果也不一样,这个特别是c++和c;后期的java则基本一样的。
因为java的兼容更好。谢谢

0
qq_41719529
路边一颗小白菜 如果在C语言中的话结果应该是3,应该是在codeblocks中是先将z的值返回到z中再执行的z++,建议把z=z++,改成t=z++,再cout<<t;cout<<z;来区别一下
大约一年之前 回复
qq_38104740
qq_3095349095 对了,另外直接原因可以这样说z=z++,是先赋值给z再计算“++”的,所以输出的是直接赋值给z的2
一年多之前 回复

Z=Z++;这一句是先赋值给Z然后Z再加1,可以改成Z=++Z;或者Z+=Z;

-3

++这个符号是用来自加的

简单来说z++和++z都等价于z=z+1;
一般来说单独使用是没有什么区别的

但又与赋值符号=一起使用时是有区别的

z++的话,是先赋值,再自加

++z的话是先自加,再赋值

比方说z=1

对于t=z++,t的值为1

对于t=++z,t的值为2

0

看编译器实际生成的代码的协会顺序啊
[root@localhost dns]# cat t.c
#include

void main()
{
int z=2;
z=z++;
printf("z=%d\n",z);
}
[root@localhost dns]# ./t
z=2

objdump -d t::::::::::::::
0000000000400530 :
400530: 55 push %rbp
400531: 48 89 e5 mov %rsp,%rbp
400534: 48 83 ec 10 sub $0x10,%rsp
** 400538: c7 45 fc 02 00 00 00 movl $0x2,-0x4(%rbp) //z=2
40053f: 8b 45 fc mov -0x4(%rbp),%eax //eax=z=2
400542: 8d 50 01 lea 0x1(%rax),%edx //edx=3=2+1
400545: 89 55 fc mov %edx,-0x4(%rbp) //z=edx=3
400548: 89 45 fc mov %eax,-0x4(%rbp) //z=eax=2**
40054b: 8b 45 fc mov -0x4(%rbp),%eax

40054e: 89 c6 mov %eax,%esi
400550: bf 00 06 40 00 mov $0x400600,%edi
400555: b8 00 00 00 00 mov $0x0,%eax
40055a: e8 b1 fe ff ff callq 400410 printf@plt
40055f: c9 leaveq

0

先将z赋值给左值,然后在++的

0

z=z++,是先把z的值赋值给z,再将z自加1,因此z的值当然为2. 如果在这一句后面再加上y=z,那么这时y的值就是3了。

-2

int z = 2;
z 1= z++;
cout<<z1;
z1=2 z=3了
先赋值左边的然后右边的在进行自加
如果++在前面
int z = 2;
z 1= ++z;
z1=3 z=3
先自加在赋值

0
qq_36316736
武志祥 如果是先赋值左边再自加那结果不还是3吗,前面的z和后面的z对应的地址应该一样吧
一年多之前 回复
共29条数据 1 3 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Z武器Z武器Z武器Z武器Z武器Z武器Z武器
Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器Z武器
z武器z武器z武器z武器z武器z武器
z武器z武器z武器z武器z武器z武器z武器z武器z武器
z我的主页z
http://blog.csdn.net/hrunt
Z变换及Z传递函数
计算机控制技术相关文档,很好的学习资源.对于Z变换的理解有直观明了,可以作为课后自学的资料
z
最近在做一个利用office word active 实现 spell check的功能。rnrn利用的技术是rnMicrosoft Word 11.0 Object Libraryrn+rnMicrosoft.Office.Interop.Wordrnrnrn遇到一个问题,rnrn有没有可能在同一个application中,既实现office 2003的spell check,又实现2007的spell check.rnrn也就是一起引用rn(Microsoft Word 11.0 Object Library)rn+rn(Microsoft Word 12.0 Object Library)rnrnrnrn因为,这个winform application即有可能用在 office 2003的环境下(其中一些电脑),也有可以用在office 2007的环境下(另外一些电脑)。rnrnrnrn
printf("%d\n", (++z) + (++z) + (++z));的结果是多少???
int z; rnz = 3;rnprintf("%d\n", (++z) + (++z) + (++z));rnrn编译器信息rn======================================rnMicrosoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86rnCopyright (C) Microsoft Corp 1984-1998. All rights reserved.rnrnex10.cpprnMicrosoft (R) Incremental Linker Version 6.00.8168rnCopyright (C) Microsoft Corp 1992-1998. All rights reserved.rnrn/out:ex10.exernex10.objrnrn执行结果rn=====================================rn16rnrnrn书上的答案是 18rn
$z=date("z");if($z==124) //$z天是几月几号?
请尽量简单点!
为什么z=z++,z的结果没变?
int z = 2; z = z++; cout<<z;//输出仍为2在codeblocks、dev c++中输出是2 在VC中输出是3这是为什么?答案:不同编译器对后缀++运算符的实现不一样。简洁地回答一下: 若a=2; a++ 是创建一个副本a’=2,a加1,返回副本a’。 ++a 是a加1,返回a。所以在 z=z++时,++运算符的优先级比=高,先执行++运算符要做的事。 先创建z’
求两个数学函数(Z变换和Z逆变换)
求两个数学函数(Z变换和Z逆变换)
检测CPU—Z检测CPU—Z检测CPU—Z
检测你的CPU,让你了解你的cpu检测CPU—Z检测CPU—Z
((z < x) ? x : ((z > y) ? y : z))含义是什么?
((z < x) ? x : ((z > y) ? y : z)) 含义是什么?
for(;z<10;++z) 这个是什么意思,z的初始值是????
for(;z<10;++z) 这个是什么意思,z的初始值是????
暑假训练2 Z(错排)
国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做&quot;考新郎&quot;,具体的操作是这样的: 首先,给每位新娘打扮得几乎一模一样,并盖上大大的红盖头随机坐成一排; 然后,让各位新郎寻找自己的新娘.每人只准找一个,并且不允许多人找一个. 最后,揭开盖头,如果找错了对象就要当众跪搓衣板... 看来做新郎也不是容易的事情... 假设一共有N对新婚夫妇,...
z/OS basics (2/3)
IBM内部使用的z/OS教材,由浅入深,很详细
C++隐式成员函数2【Z】
1 编译器自动生成的基本函数 C++编译器会在开发人员没有声明下列函数的时候,声明编译器自己的版本。 class Empty{} 等效于下面的声明 class Empty{ public: Empty(); //缺省构造函数 Empty(const Empty&amp;amp; rhs); //拷贝构造函数 ~Empty(); //析构函数 Empty &amp;amp; operator=(c...
('A'<=ch<='Z'||'a'<=ch'z')不行?
在累计输入字符时,rn我用 if ('A'<=ch<='Z'||'a'<=ch'z')letter++;rn else if (ch==' ')space++;rn else if('0'<=ch<='9')digit++;rn else other++;rn这样不行;rn改成 if(ch<='z'&&ch>='a'||ch<='Z'&&ch>='A') letter++; rn else if(ch==' ') space++; rn else if(ch<='9'&&ch>='0') digit++; rn else other++; rn就可以了。rn这是为什么?是不是('A'<=ch<='Z'||'a'<=ch'z')这样表示是不行的?为什么?rn请教朋友
z正则表达式
z正则表达式 常用的正则表达式 通用的正则表达式
Z Algorithm
字符串匹配算法Z Algorithm的讲义。
CPU Z
测试CPU用的 很经典
IPphone_realize(z)
IP电话的设计与实现.rar 本文从VoIP相关知识入手,介绍了IP电话的软硬件结构设计及实现方案,并描述了IP电话基于SIP的呼叫流程,并通过设计杂项的方式详细描述了系统中的几个关键点。内容仅供大家参考,更详细内容可参见源代码,
混合开发z
&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;html&amp;gt;    &amp;lt;head&amp;gt;        &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;        &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;        &amp;lt;script src=&quot;angular.min.js&quot; type=&quot;text/javascri
VOA1500i~z
接着上个的文件,按字母顺序 请大家看清再在下载
“ Z”的问题!!
为什么用C的fread,fwrite *.txt时,在文件的末尾总有个“Z”呢?从哪里多出了这个rn字符呢?
z标准化
for feature in X_train.columns.values[:-1]: mean, std = data[feature].mean(), data[feature].std()#求出标准差和方差 X_train.loc[:, feature] = (X_train[feature] - mean) / std X_test.loc[:, feature] ...
Z网络判断
Netutils public static boolean isconnected(Context context){ ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info =...
z作图!
怎样制作ico图形,用什么软件?
echo `echo \\\\\\\z` 为什么输出是 \\z
RT
Z - 龟兔赛跑
Z - 龟兔赛跑题目描述据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成了绝技,能够毫不休息得以恒定的速度(VR m/s)一直跑。兔子一直想找机会好好得教训一下乌龟,以雪前耻。 最近正值HDU举办50周年校庆,社会各大名流齐聚下沙,兔子也趁此机会向乌龟发起挑战。虽然乌龟深知获胜希望不大,不过迫于
静态工厂方法[Z]
ava面向对象编程-静态工厂方法 Java面向对象编程- 静态工厂方法 创建类的实例的最常见的方式是用new语句调用类的构造方法。在这种情况下,程序可以创建类的任意多个实例,每执行一条new语句,都会导致Java虚拟机的堆区中产生一个新的对象。假如类需要进一步封装创建自身实例的细节,并且控制自身实例的数目,那么可以提供静态工厂方法。 例如Class实例是Java虚拟机在加载一个类...
快速排序( ̄o ̄) . z Z
前言 每件事的最后都会是好事 如果不是好事 说明还没到最后 经典快排 经典快排的思想其实就是:选择一个基准数,将大于这个基准数的数放在基准数的右边,小于等于的放在左边。然后再分别在这两个区域中选择基准数,再将这两个区域分别分为大于和小于等于两个区域,直到最后排好序。 首先我们将数组中的第一个数设为temp,也就是我们的基准数。将数组最后一个数设为j。 从j开始,一个个依次向前查找,找...
聊天z
           看见下面的导航栏            我们先实现这个:            底部我们就用了一个自定义的View             BottomControlView 这个类就是我们的底部导航栏public class BottomControlView extends RelativeLayout { private ImageView optionVie...
Z变换
  由于DTFTDTFTDTFT变换是有收敛条件的,并且其收敛条件比较严格,很多信号不能够满足条件,为了有效的分析信号,需要放宽收敛的条件,引入ZZZ变换。 定义   已知序列的DTFTDTFTDTFT为 X(ejw)=∑n=−∞∞x[n]e−jwnX(e^{jw})=\sum_{n=-\infty}^{\infty}x[n]e^{-jwn}X(ejw)=n=−∞∑∞​x[n]e−jwn 当序列x...
android工具类Z
private static NewUitl newUitl; private NewUitl(){ } /// public static NewUitl getNewUitl(){ if (newUitl==null){ newUitl = new NewUitl(); } return newUitl; } public interface Callbak{ void onsuccess(...
z政府网站
z政府网站
Z武器 硬件检测 Z武器2.16.8.1229
Z武器拥有专业而易用的硬件检测,不仅超级准确,而且向你提供中文厂商信息,让你的电脑配置一目了然,拒绝奸商蒙蔽。 它适合于各种品牌台式机、笔记本电脑、DIY兼容机,实时的关键性部件的监控预警,全面的电脑硬件信息,有效预防硬件故障,让您的电脑免受困扰。 Z武器帮你快速升级补丁,安全修复漏洞,远离黑屏困扰。更有硬件温度监测等带给你更稳定的电脑应用体验。
z分数
总体z分数:    。其中μ为总体平均值,X-μ为离均差,σ表示总体标准偏差 [1]  。z的绝对值表示在标准差范围内的原始分数与总体均值之间的距离。当原始分数低于平均值时,z为负,以上为正。 其中,计算z需要总体平均数和总体标准偏差,而不是样本平均值或样本偏差。 它需要知道总体参数,而不是从感兴趣的总体中抽取样本的统计数据。但可以使用随机样本来估计标准偏差。 z分数测量实际数据的平均距离...
Z字型
#include<cstdio> #include<cstring> #include<math.h> int main() { char n[130]; char m[11][11]; int a,b,c,d,e,i; while(scanf("%s",n)!=EOF) { a=strlen(n); b=sqrt(a);
Z购物车
mvp view package com.zzc.admin.yuekao.mvp.view; public interface Mainview { void success(int type,String data); void fail(int type,String error); } model_1 package com.zzc.admin.yuekao.mv...
z增删改查
.hui{ background-color: gainsboro; } .bai{ background-color: white; } .tip...
正则表达式【Z】
正则表达式是烦琐的,但是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。只要认真去阅读这些资料,加上应用的时候进行一定的参考,掌握正则表达式不是问题。 索引 1. 引子 2. 正则表达式的历史 3. 正则表达式定义 3.1 普通字符 3.2 非打印字符 3.3 特殊字符 3.4 限定符 3.5 定位符 3.6 选择 3.7 后向引用 4. 各种操作符...