对func swap(a, b *int){*a, *b= *b, *a}的问题
来源:2-7 指针

aibo
2018-07-25
老师您好,这是我对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也是同理。122018-07-26
相似问题