在C语言中,有着强大的指针,在java中,两数交换都显得那么复杂。这一切,在C中,运用指针,将是那么轻而易举.
通过指针变量作为函数参数
#include <stdio.h> #include <stdlib.h> /* *交换整数 */ void swap(int *p1,int *p2) { int temp; temp=*p2; *p2=*p1; *p1=temp; } void testSwap() { int i=5,j=10; printf("before swap i:%d j:%d",i,j); swap(&i,&j); printf("after swap i:%d j:%d",i,j); } int main() { //test1(); testSwap(); return 0; }
以上代码编译运行后,得到如下结果
before swap i:5 j:10after swap i:10 j:5
Process returned 0 (0x0) execution time : 0.016 s
Press any key to continue.
但有一点需要注意,不要企图通过改变指针形参的值而使指针实参的值改变,例如以下代码
void swap(int *p1,int *p2) { int *temp; temp=p2; p2=p1; p1=temp; }
将不能实现两数交换