为了账号安全,请及时绑定邮箱和手机立即绑定

不理解赋值与被赋值的关系?

为啥我写反了就不行:string boy="秀丽";  //男孩的名字 string girl="伟强";  //女孩的名字 string temp;    //中间的变量boy=temp;  //把男孩的名字赋值给temp girl=boy;//把女孩的名字赋值给男孩temp=girl;//把temp中的名字赋值给男孩console.writeline("男孩叫"+boy+"女孩叫"+girl);(我的解释:先把boy给了temp,然后boy就空了,再把girl给boy,然后girl就空了,最后把temp给grill, 这就结束了。 为什么就是报错。  理应的说右边不是赋值吗? 就等于上图的牛奶,AB(等于这里中间的变量)C, A放入B,A杯就空了,然后C杯就放入A,C就空了,然后再把B放入C。) 然后我题就是这样做的,就是错的。求解释

正在回答

2 回答

赋值语句中等号的左边是被赋值的变量,等号右边是赋值变量,即右向左传,例如:把boy值赋给temp当写成temp=boy;

0 回复 有任何疑惑可以回复我~

你好,首先说一点,赋值= 是把等号右边的值,赋值给等号左边的变量,如果你问我为什么是把右边的值赋值给左边,而不是把左边的值赋值给右边?我只能告诉你,这是一个大家约定好的规则,就像 “红灯停,绿灯行”,而不是“红灯行,绿灯停”;同时在c#,c,java等编程语言中,也是这样规定的。

再一点,如果把a的值赋值给b,a的值是不改变的,你可以暂时先把“赋值”当成“复制”。下面看个小例子:

            string a1 = "one";
            string a2 = "two";
            Console.WriteLine("a1的值为:" + a1 + "  a2的值为: " + a2);
            //现在把a1的值 赋值给a2, 这样a2 的值 就会变化了
            a2 = a1;
            //再次 输出,看下a1,a2的值是否变化
            Console.WriteLine("a1的值为:" + a1 + "  a2的值为: " + a2);

运行结果为:http://img1.sycdn.imooc.com//5945303c00019bad02930105.jpg,会发现,a2的值变了,a1的值没有变,也没有为空。

最后说下,2个值交换值得写法,你的主要思路是对的,主要是对赋值还没有完全掌握而已。把之前代码中赋值语句两边调换一下就可以了。http://img1.sycdn.imooc.com//594531c90001128104040226.jpg如果还有不懂得地方,可以继续回复我。如果觉得回答还不错的话,麻烦采纳一下哈!

5 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C#开发轻松入门
  • 参与学习       254277    人
  • 解答问题       1459    个

本门课程是C#语言的入门教程,将带你轻松入门.NET开发

进入课程

不理解赋值与被赋值的关系?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信