3个回答
展开全部
sp(&k);调用这个函数时,k的地址传给了变量a。a变量的内容是k的地址。*a = k。所以第一次
*a=*a*2;执行后,k的值为6,*a的值也是6.
打个比方k是一个房间。该房间里有个值3。a是个房间号,*a就是到a标记的房间里取东西。
*a=*a*2;就是到a标记的房间里取出值,乘个2,再放回那个房间里。那房间里的值应该是6了吧,那k的值是多少不就显而易见了么。
*a=*a*2;执行后,k的值为6,*a的值也是6.
打个比方k是一个房间。该房间里有个值3。a是个房间号,*a就是到a标记的房间里取东西。
*a=*a*2;就是到a标记的房间里取出值,乘个2,再放回那个房间里。那房间里的值应该是6了吧,那k的值是多少不就显而易见了么。
更多追问追答
追问
请问:把b的地址赋给a后 再执行*a=*a*2 此时*a=4 这时为什么k不为4呢?
请问:把b的地址赋给a后 再执行*a=*a*2 此时*a=4 这时为什么k不为4呢?
展开全部
*a = *a * 2;这个时候a是指向k的,这句执行的时候,已经通过指针改变了k的值,即k等于6,函数后面都未改变k值,最后函数返回的时候,k自然是等于6
追问
请问:把b的地址赋给a后 再执行*a=*a*2 此时*a=4 这时为什么k不为4呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指向整数k的指针传给了sp函数,所以可以改变k的值,若实参是k,只是复制它的值,并不改变它本身,此时实参是&k,可以改变k的值,
追问
请问:把b的地址赋给a后 再执行*a=*a*2 此时*a=4 这时为什么k不为4呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询