新手求教

zr6327575622 2010-09-06 12:29:59
额,我想请教一下那个swap函数的 值传递 地址传递和引用调用 这三种该怎么用,给几个例子欣赏一下!谢谢额
...全文
190 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
昵称很不好取 2010-09-06
  • 打赏
  • 举报
回复

#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;
}
眼睛猥琐男 2010-09-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 thefirstz 的回复:]

[/Quote]

#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;
}
十八道胡同 2010-09-06
  • 打赏
  • 举报
回复
it seems like that call by reference is first used in Pascal.
引用传值 第一次是出现在Pascal中
suchx 2010-09-06
  • 打赏
  • 举报
回复

.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

I am not quite clear with 引用调用 in C++, it seems like that call by reference is first used in Pascal.
harderman 2010-09-06
  • 打赏
  • 举报
回复
汇编写的很牛X
ForestDB 2010-09-06
  • 打赏
  • 举报
回复
召唤复制帝及debug帝。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧