【项目1 - C/C++语言中函数参数传递的三种方式】

本文介绍了三种参数传递的方式:传值、传地址与引用传递,并通过示例代码展示了每种方式如何影响函数内外变量的变化。

  1. /* 
  2.  *Copyright(c)2017,烟台大学计算机学院 
  3.  *All right reserved. 
  4.  *文件名称:参数传递的三种方式.cpp 
  5.  *作者:李佳骏 
  6.  *完成日期;2016年9月7日 
  7.  *版本号;v12.11 
  8.  * 
  9.  *问题描述:通过输入两个整数,编写三个版本的交换函数,通过分别调用三个版本的交换函数,观察输出结果 
  10.  *输入描述:两个需要交换的整数 
  11.  *程序输出:交换后的两个整数 
  12. */  

问题及代码:

传值

#include <stdio.h>
void myswap(int x, int y)
{
    int t;
    t=x;
    x=y;
    y=t;
}
int main()
{
    int a, b;
    printf("请输入待交换的两个整数:");
    scanf("%d %d", &a, &b);
    myswap(int x, int y);//分三个程序,分别写上调用myswap的合适形式
    printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
    return 0;
}


运行结果:


知识点总结:这种方法不能传值。

学习心得:形参用后释放,并不能交换原本的实参数值。


问题及代码:

传地址

#include <stdio.h>
void myswap(int *p1, int *p2)
{
    int  t;
    t=*p1;
    *p1=*p2;
    *p2=t;
}
int main()
{
    int a, b;
    printf("请输入待交换的两个整数:");
    scanf("%d %d", &a, &b);
    myswap(&a,&b);//分三个程序,分别写上调用myswap的合适形式
    printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
    return 0;
}


运行结果:


知识点总结:这种方法可以传值。

学习心得:使用指针传值,交换了地址所指的实参的值。



问题及代码:

引用传值

#include <stdio.h>
void myswap(int &x, int &y)
{
    int t;
    t=x;
    x=y;
    y=t;
}
int main()
{
    int a, b;
    printf("请输入待交换的两个整数:");
    scanf("%d %d", &a, &b);
    myswap(a,b);
    printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
    return 0;
}


运行结果:


知识点总结:这种方法可以传值。

学习心得:使用引用,相当于实参的小名,小名更改即形参的值也更改。



### 回答1: 可以使用以下代码实现: #include <stdio.h> int main() { int a, b, temp; printf("请输入两个整数:\n"); scanf("%d%d", &a, &b); printf("交换前:a=%d, b=%d\n", a, b); temp = a; a = b; b = temp; printf("交换后:a=%d, b=%d\n", a, b); return ; } ### 回答2: 可以使用C语言编写一个从键盘上输入两个整数交换两个整数后输出的程序。以下是一个实现这个功能的示例代码: ```c #include <stdio.h> int main() { int num1, num2, temp; printf("请输入第一个整数: "); scanf("%d", &num1); printf("请输入第二个整数: "); scanf("%d", &num2); // 交换两个整数 temp = num1; num1 = num2; num2 = temp; printf("交换后的结果为: \n"); printf("第一个整数: %d\n", num1); printf("第二个整数: %d\n", num2); return 0; } ``` 运行这段代码后,程序会提示你输入两个整数。例如,如果你输入了6和9,程序将输出: ``` 交换后的结果为: 第一个整数: 9 第二个整数: 6 ``` 这样,我们就成功地实现了从键盘上输入两个整数交换两个整数后输出的功能。 ### 回答3: 要使用C语言编写程序实现从键盘上输入两个整数,然后交换两个整数输出交换后的结果。下面是一个示例程序: ```c #include<stdio.h> int main() { int num1, num2, temp; printf("请输入第一个整数:"); scanf("%d", &num1); printf("请输入第二个整数:"); scanf("%d", &num2); // 交换两个整数的值 temp = num1; num1 = num2; num2 = temp; printf("交换后的结果为:\n"); printf("第一个整数:%d\n", num1); printf("第二个整数:%d\n", num2); return 0; } ``` 在程序中,首先定义了三个变量`num1`、`num2`和`temp`,分别用于存储从键盘输入两个整数以及中间值。然后使用`printf`和`scanf`函数分别获取用户输入两个整数。 接下来,通过赋值操作将`num1`的值存储到`temp`中,再将`num2`的值赋给`num1`,最后将`temp`中保存的值赋给`num2`实现两个整数的值交换。 最后,使用`printf`函数交换后的结果输出到控制台。 在实际运行程序时,用户需要依次输入两个整数按下回车键确认输入。然后程序会输出交换后的结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值