A. 关于c语言 指针变量作为函数形参的问题
这里是指针变量,但是它指向的空间是被分配过的.你可以向里面写入或者读出.
B. c语言中指针作为形参,代码如下:
你要用*去解引用,这样才能改变指针指向内存的值。
你的swap函数写的有问题,正确的写法有人给了。
至于为什么*x,*y的值没有改变,因为你交换的是2个形参的值,虽然你传入的是指针,但是你没有把它们当成指针来用,最后的结果跟传非指针值是一样的。
如果想真正改变实参的值,就必须交换指针指向的内存,而不是单纯交换指针变量本身。形参是通过堆栈传递的,只有用类似 *x = 1;这样的语句操作指针指向的内存,才能影响到实参,否则实参的值是不会改变的。
其实最好的方式就是去VS里调试运行,仔细观察运行过程,就能比较清晰地了解指针。单纯的理论是站不住脚的,拉出来溜溜就一清二楚了。
想对你能有帮助。