十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
通过参数告诉函数:参数指向的单元存放着你要的数据(供函数读写),处理完后也可以将结果放到那些单元(函数结束后供调用程序读写),这样双方都可以读写数据和结果,称为双向传递。
我们提供的服务有:成都网站设计、成都网站建设、微信公众号开发、网站优化、网站认证、横峰ssl等。为千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的横峰网站制作公司
所谓对应其实是参数形式上的对应。上面的两个函数都要求传递一个指针类型。并且还是双指针类型。c的编译器执行的是字面上的语义检查,并不实际追究这个参数真是子函数需要的。而你传递参数的正确与否在运行时才能反映出来。尤其是指针,传递一个错误的指针基本会导致你的程序运行不成功,或者直接终止运行。
上面你的代码中你给你的子函数传递一个int 类型的值,编译器肯定会报错,但是你用显式类型转换将int转换成双指针类型就骗过了编译器。比如这样:
int test=0x00400000;
shell_sort((char**)test,n);
编译通过,运行必然出错。
*x++和*x = *x + 1完全两个意思,你这是误会了。
提示一下,跟指针没什么关系,和优先级有关。