赞
踩
#include <stdio.h> void swap(int *a, int *b) { /* * 此函数中: * a和b是指向两个int类型的指针, * 它们接受了main里面a和b的地址, * 即: * a = &a (in main()); * b = &b (in main()); * 所以对*a实际上就是对a(in main())操作 */ printf("---swap:(a, b) = (%p, %p)\n", a, b); printf("---swap:(&a, &b) = (%p, %p)\n", &a, &b); printf("---swap:(*a, *b) = (%d, %d)\n", *a, *b); int temp = *a; *a = *b; *b = temp; printf("------------SWAPED------------\n"); printf("---swap:(a, b) = (%p, %p)\n", a, b); printf("---swap:(&a, &b) = (%p, %p)\n", &a, &b); printf("---swap:(*a, *b) = (%d, %d)\n", *a, *b); } int main() { int a=4, b=5; printf("main:(&a, &b) = (%p, %p)\n", &a, &b); printf("------------------------------\n"); swap(&a, &b); printf("------------------------------\n"); printf("main:(&a, &b) = (%p, %p)\n", &a, &b); printf("\n"); printf("a = %d, b = %d\n", a, b); return 0; }
运行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。