已知main函数中有声明“int a=3, b=4;”,若在main函数中通过执行语句“swap(&a, &b);”交换a、b变量的值,则下列swap函数定义正确的是 (2019考题)
A. void swap(int x, int y){ int t; t=x; x=y; y=t; }
B. void swap( int *x, int *y){ int t; t=*x; *x=*y; *y=t; }
C. void swap(int *x, int *y){ int *p; p=x; x=y; y=p; }
D. void swap(int *x, int *y){ int *p; p=*x; *x=*y; *y=p; }