
正文
c语言中函数-地址传递,c语言函数传值和传地址的例子
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
5、使用C语言编写一个函数,用于交换两个变量的值(地址传递)。
int temp;定义临时变数 存放中间值 temp = *p;p = *q;q = temp;} 注意:不能直接写void swap(int i, int j);因为那只是临时变数,函式呼叫完后,便释放空间,两个值并没有交换。
C语言中交换两个变量需要用到一个临时变量temp。
/ 编写c语言程序,实现交换两个变量值的操作。要求:使用形参为指针的函数swap完成交换功能。主函数中,使用整型指针从键盘输入两个整数,通过调用swap完成交换 输出交换前后的变量值进行比较。
swap函数一般是一个程序员自定义函数,是实现两个变量数值的交换。比如:int a = 2;int b =3;swap(a,b); //一般用到变量数值交换,交换后a=3 b = 2;通过使用临时变量实现交换。
首先,就是最基本的知识,写头文件、函数声明、定义变量。下面还需要定义指针,需要定义两个指针p1和p2,然后把a的地址赋值给p1,把b的地址赋值给p2。
相关问答
Q1: C语言子函数地址传递的方法,实现从10个数中找到最大值输出?
1、C语言输入十个数的编程方法如下:首先需要定义一个整型数组空间,因为这里需要输入十个数,所以数组空间为10个。接着定义一个最大值Max,初始默认值为0,这个用于后续值的比较。
2、利用计算机在一批数中找出最大值的一般方法为:将数据存入一个一维数组中,例如存入a数组中。在数组中找最大值(假设用变量max存放最大数)。(1)首先将a[0]视为最大数,即首先使max=a[0]。
3、思路:定义一个函数int fun(int a[]),该函数通过传递的参数数组依次遍历,寻找最大值,最后返回最大值,主函数输入数组,调用该函数输出最大值。
4、C语言通过输入十个整数然后分别顺序和逆序输出的编程思想和方法如下:首先需要定义一个整型数组用于存储输入的10个整数。这里定义一个数组a。然后利用for循环,接受从键盘输入的10个整数。这里使用i作为循环的游标变量。
Q2: 在C语言中有地址传递这一说吗?详情见下面
1、要传递类型为A的值,如果参数类型是A*,那么为传地址,反之,如果参数类型是A,那么是传值。比如,要传递int型参数:1 传值:void func(int a);2 传地址:void func(int *a);而传递char *型参数。
2、值传递。实参与形参数据传递有两种方式:值传递与地址传递。地址传递的形式为 int &a=b;也就是我们所说的引用,但引用只有C++中有,所以C语言都是值传递的。
3、地址传递:指在调用函数时将变量的地址传给函数。指针:就是一个变量的地址。
4、如果是不是传地址,那会在函数中重新定义两个变量分别等于两个参数的值,对新定义的两个变量进行操作。和原来的两个变量无关。 如果是传地址,那就是把两个数的地址传到函数中,对两个地址中的内容进行操作。
5、如TYPE**, TYPE***等,一样按照按地址传递处理。需要注意的是,TYPE本身可能为指针类型。比如要传char *型时,如果参数本身为char *,那么就是传值;要传地址,需要用至少char **型。
6、是地址传递。先在外面初始化栈,然后传递地址进来。
Q3: 说C语言中函数值传递与地址传递的方法
1、函数只有两种传递方式:值传递,又称单向传递,只能把实参数值传给形参 ,形参最后的结果不影响实参(形参改变大小 ,实参大小不变)。址传递,通过指针,把实参的地址给形参,形参的大小可以影响实参。
2、在传值中函数参数压栈的是参数的副本,任何的修改是在副本上作用,没有作用在原来的变量上。传址中压栈的是指针变量的副本,当你对指针解指针操作时,其值是指向原来的那个变量,所以对原来变量操作。
3、值传递。实参与形参数据传递有两种方式:值传递与地址传递。地址传递的形式为 int &a=b;也就是我们所说的引用,但引用只有C++中有,所以C语言都是值传递的。
关于c语言中函数-地址传递和c语言函数传值和传地址的例子的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






