c语言指针基础之用指针交换两个数(代码实例)
程序员文章站
2022-04-12 21:53:57
用指针交换两个数:
void swap(int *p,int *q) {
int temp;
temp = *p;
*p = *q;
*q = temp;...
用指针交换两个数:
void swap(int *p,int *q) { int temp; temp = *p; *p = *q; *q = temp; } int main() { int a = 3, *p,c = 5, *q; p = &a; //把变量a的地址赋值给指针p,即p指向a q = &c; swap(p,q); printf("a = %d,c = %d\n", a, c); return 0; }
注意:在子方法里交换两个数只能是引用传递,由于java都是值传递,而c可以传递指针,所以c可以修改临时变量的值
java不能修改临时变量的值,java是通过返回值来获取方法运行的结果:
public static void main(String[] args) { int a=3,b=5; fun(a, b); System.out.println("a=" + a + ";b=" + b); } private static void fun(int p,int q){ p *= 2; q *= 2; }
c可以直接通过指针修改临时变量的值:
void fun(int *p, int *q) { *p *= 2; *q *= 2; } int main() { int a = 3, *p,c = 5, *q; p = &a; //把变量a的地址赋值给指针p,即p指向a q = &c; fun(p,q); printf("a = %d,c = %d\n", a, c); return 0; }