33,311
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
void swap(int x,int y)//传值
{
int temp;
temp=x;
x=y;
y=temp;
}
int main()
{
int a=5,b=8;
swap(a,b);
printf("%d %d\n",a,b);
return 0;
}
#include <stdio.h>
void swap(int *x,int *y)//使用指针传递地址
{
int temp;
temp=*x;
*x=*y;
*y=temp;
}
int main()
{
int a=5,b=8;
swap(&a,&b);
printf("%d %d\n",a,b);
return 0;
}
void swap(int &x,int &y)//传引用,只有C++才有
{
int temp;
temp=x;
x=y;
y=temp;
}
#include <stdio.h>
void swap(int x,int y)//传值
{
int temp;
temp=x;
x=y;
y=temp;
}
int main()
{
int a=5,b=8;
swap(a,b);
printf("%d %d\n",a,b);
return 0;
}
#include <stdio.h>
void swap(int *x,int *y)//使用指针传递地址
{
int temp;
temp=*x;
*x=*y;
*y=temp;
}
int main()
{
int a=5,b=8;
swap(&a,&b);
printf("%d %d\n",a,b);
return 0;
}
void swap(int &x,int &y)//传引用,只有C++才有
{
int temp;
temp=x;
x=y;
y=temp;
}
.MODEL SMALL
.STACK 256H
BYTESIZE=1
WORDSIZE=2
.DATA
A DW 2
B DW 4
.CODE
START : NOP
MOV AX,@DATA
MOV DS,AX
MOV ES,AX
PUSH B
PUSH A
CALL SWAPBYVAL
PUSH DS
LEA SI,B
PUSH SI
PUSH DS
LEA SI,A
PUSH SI
CALL SWAPBYREF
MOV AX,4C00H
INT 21H
SWAPBYVAL PROC NEAR
PUSH BP
MOV BP,SP
DEC SP
DEC SP ;ALLOCATE SPACE FOR TEMP
MOV AX,[BP+4] ;GET A FROM STACK
MOV [BP-2],AX ;TEMP=A
MOV AX,[BP+6] ;GET B FROM STACK
MOV [BP+4],AX ;A=B
MOV AX,[BP-2] ;GET TEMP
MOV [BP+6],AX ;B=A
MOV SP,BP
POP BP
RET WORDSIZE*2
ENDP
SWAPBYREF PROC NEAR
PUSH BP
MOV BP,SP
DEC SP
DEC SP ;ALLOCATE SPACE FOR TEMP
LES DI,[BP+4]
MOV AX,[DI]
MOV [BP-2],AX;TEMP=A
LES DI,[BP+8]
MOV AX,[DI]
LES DI,[BP+4]
MOV [DI],AX ;A=B
LES DI,[BP+8]
MOV AX,[BP-2]
MOV [DI],AX ;B=A
MOV SP,BP
POP BP
RET WORDSIZE*4
ENDP
END START