通过指针修改外边实参

简介: 函数内容如何改变外部的实参? 对于上面的问题,只有C中的指针能够完成, 基本数据类型作为函数实参,只是将值纯粹的传递给形参,形参的改变并不影响实参.   1 #include 2 3 void swap(char v1,char v2) { 4 printf("更...

函数内容如何改变外部的实参?

对于上面的问题,只有C中的指针能够完成,

基本数据类型作为函数实参,只是将值纯粹的传递给形参,形参的改变并不影响实参.

 

 1 #include<stdio.h>
 2 
 3 void swap(char v1,char v2) {
 4     printf("更换前实参传来的形参的值:v1=%d,v2=%d\n",v1,v2);//这里的v1和v2是从下面的main主函数中实参传来的;
 5     char temp;
 6     temp = v1;
 7     v1= v2;
 8     v2 = temp;
 9     printf("更换后形参的值肯定发生了变化:v1=%d,v2=%d\n",v1,v2);
10 }
11 
12 
13 int main(int argc,const char *argv[],const char **env[]) {
14     char a = 10,b = 9;
15     printf("实参在外边函数未调用前:a=%d,b=%d\n",a,b);
16     swap(a,b);
17     printf("实参在外边函数调用后值:a=%d,b=%d\n",a,b);//变量a,b的值是肯定不会改变的,应用外边函数式没法改变此处的数值的,在函数调用过程中,只是实参的值简单的传递给形参,形参的值是会改变 的,但是实参的值是不会改变的,
18 }

 

 

测试内部函数改变外部的实参,只有纸质能够做到,

为什么指针能够做到呢?因为指针(是外边函数的形参)指向的就是实参 的内存地址,

void swap(char *v1,char *v2) {

    

}

 

swap(&a,&b);

 上面 的函数就不写了!附个运行结果图

 

2,利用指针实现函数有抖个返回值;

 

指针变量所在内存空间大小可用sizeof函数计算;

int *p1;

int a = sizeof(p1);

指针变量占内存空间大小不会随锁指向的变量类型 的改变而发生大小的改变;

 

目录
相关文章
|
测试技术 C语言
C语言犄角旮旯的知识之形参、实参、main函数参数、数组或指针做函数参数等
C语言犄角旮旯的知识之形参、实参、main函数参数、数组或指针做函数参数等
|
存储 C语言
指针妙用之将函数中形参的值传递给实参
指针妙用之将函数中形参的值传递给实参
|
存储 测试技术 C++
指针作为函数参数,修改实参值
1,指针作为函数参数, 指针可以指向内存中任意一个数据,通过间接引用能够在函数内修改函数外甚至系统中的数据; 为了避免指针作为函数参数导致数据被意外修改,我们可以使用const来保护指针所指向的数据; 2,指针作为函数返回值, 同别的数据类型int,float一样,指针也能够作为函数的一种返...
755 0
函数中指针和引用的形参和实参
#include using namespace std; void change(int *a,int &b,int c)//指针作形参,前面加*号,引用作形参前面加&号。 { c=*a; b=3; *a=2; } in...
611 0
|
4月前
|
C语言
指针进阶(C语言终)
指针进阶(C语言终)
|
26天前
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
|
2月前
|
C语言
【C初阶——指针5】鹏哥C语言系列文章,基本语法知识全面讲解——指针(5)
【C初阶——指针5】鹏哥C语言系列文章,基本语法知识全面讲解——指针(5)
|
2月前
|
C语言
【C初阶——指针4】鹏哥C语言系列文章,基本语法知识全面讲解——指针(4)
【C初阶——指针4】鹏哥C语言系列文章,基本语法知识全面讲解——指针(4)