请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

对func swap(a, b *int){*a, *b= *b, *a}的问题

老师您好,这是我对func swap(a, b *int){*a, *b= *b, *a}的理解,您看一下对不对:定义swap函数的时候规定参数是一个指向内存地址的指针;在调用swap的时候传入两个对应的地址;当执行到*a, *b=*b, *a的时候相当于是把a指针的指向重定向到b指针指向的地址,因为这两个内存地址存着不同的值,所以变量中的值也就被替换了。老师,因为我是javascript的,最早11年开始工作是从jquery简单动画做起的,一直对编程基础不是很懂,还是想请教您一下变量/指针/地址和值的关系,指针到底是从变量指向地址的,还是从地址指向变量的啊........

正在回答

1回答

好的。不过同学的理解的确有误。指针还是原来的指针,指向的还是同一片内存。但这句话把这个内存里的值改变了。
举个例子一开始a指向3,b指向4
运行的时候先运行等号右边*b,*a,就是分别取值,得到4,3,然后进行赋值,把4给*a,就是让a指向的内存变成4,b也是同理。

1 回复 有任何疑惑可以回复我~
  • 提问者 aibo #1
    非常感谢老师!
    回复 有任何疑惑可以回复我~ 2018-07-26 10:09:08
  • 提问者 aibo #2
    还想请教一下老师,这种运行时先运算等号右边的值这个问题~以前有在官网上看ecmascript8的文档,里面也有说一些什么上下文无关语法啊产生式,终结符,非终结符,等式左右边,当时因为这个卡得挺厉害就没有往下看了,也因为英语基础也比较弱;想问问老师这种基础知识可以去哪里相对比较系统的看一看啊~;虽然英语基础也比较弱,但是需要的时候也会对着翻译看文档~
    也买了老师您的备战校招课程,还没有开始看,想问问老师那里面会有关于这方面的知识或者指条路之类的吗...
    回复 有任何疑惑可以回复我~ 2018-07-26 10:20:13
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信