循环结果不正确 指针无法改变数组中的值

img

img

img


为啥这个指针代替不了数组 ,无法改变数组的值,之后我将*m改成a【0】时 ,得到结果为1 也不正确(为了试验结果先使x1=3 图中a数组我存放的是两点形成的直线的斜率的值

*m = ((float)(y0 - y1) / (x0 - x1));
*n =(float)( yl - ((float)(y0 - yl) / (x0 - x1)) * x1);

float 需要转换分子


如果有用麻烦点个采纳,谢谢~

你为什么要print *m呢,m一开始指向的是数组a的第一个元素,它在循环过程中不断被赋值然后移动,最后一次执行m++,它指向了数组最后一个没被改变的值,那不是0是啥呢,除非越界了会是个随机数,否则肯定是0呀
你想看a里面有什么要循环打印a呀,打印m干什么
打个比方吧,有个快递小哥,不停的把外卖送到各个地方,等他都送完回来了,你不去看收外卖的人到底收到什么外卖,而去看小哥手里,那肯定是什么都没有啊

循环出来,打印语句之前,将 m = a; n = b; 重新指向数组的首地址就解决问题了,因为循环里用了 m++; n++; ,自加后,m n 就不是指向数组的首地址了。