当前位置: 首页 > news >正文

家具 东莞网站建设如何使用免费b站推广网站

家具 东莞网站建设,如何使用免费b站推广网站,视觉差网站设计,公司网站建设的要点值传递 引用传递(传地址,传引用)的区别 传值,是把实参的值赋值给行参 ,那么对行参的修改,不会影响实参的值。 传地址,是传值的一种特殊方式,只是他传递的是地址,不是普通…

值传递 引用传递(传地址,传引用)的区别

传值,是把实参的值赋值给行参 ,那么对行参的修改,不会影响实参的值
传地址,是传值的一种特殊方式,只是他传递的是地址,不是普通的如int,那么传地址以后,实参和行参都指向同一个对象
传引用,真正的以地址的方式传递参数, 传递以后,行参和实参都是同一个对象,只是他们名字不同而已,对行参的修改将影响实参的值。

从函数调用的角度比较容易理解:

  • 函数的名字就是函数的首地址,就是函数的入口,例子:(数组与之同理,数组的名字就是数组的首地址)
void fun(void) //fun 既是函数类型也使指针类型 一体两面
{}
//数组也是同理short arr[20]; //arr 既是数组类型,也是指针类型(一个变量两个类型) 应用场景不同,则展示出来的效果不同,如同一枚硬币的两面,同属于这枚硬币

请添加图片描述
既然 fun 是地址值,那么 fun 是什么类型? 指针类型,因为它的本质是一个地址。 // 这称为函数指针
void ( *)(void) —> void fun(void)

     int fun2(short s, int i){return 0;}int (*)(short, int) //fun2的类型函数调用: fun2(10,20);int (*p)(short, int)  = fun2; 

将 fun2 赋值给其他值:p = fun2,因为fun2的本质是一个地址,所以接收类型应该是:int (*)(short,int) p = fun2; <— 然而,并没有这样的写法。这里有一个规律,如果你看见 (*) 单独存在,要将后面的东西放入到 *的后面(语法规则),即 写法为: int ( *p)(short, int) = fun2;同理,如果你看见单独存在的 []或者多个[] [] [],将后面的东西放到[]的前面。例如,数组的定义为:存储类型 变量名字[元素个数]; —> 数组类型short [20] —> 定义数组short[20] arr(这样更易于理解,但没有这种写法) —> short arr[20];
因为将fun2的值赋值给了 p,所以下面两种调用是一致的:

    p(10,20); // fun2(10,20);
  • 形参
	void fun(short s, int *p){}short a = 10;int b = 20;fun(a, &b);
    值传递 : 将变量的值,直接传给形参 // 比如 a 址传递 : 将变量的地址,传给形参   // 比如 &b 
  	void fun(int x, int *p){}int a = 10;int b = 20;int *xp = &b;fun(a, xp);  // xp 是一个 值传递 而相对于 b 来说,这才是一个址传递

请添加图片描述

#include <stdio.h>int fun(int x, int y);
int main(void)
{int a = 10, b = 20;fun(a, b); //调用fun函数 --> 在内存中给 fun 函数开辟空间printf("%d %d\n", a, b); //a,b 没有变化,因为CPU的寄存器中,fun值传递后,内存被释放,a,b的值不变fun2(&a); // 址传递,获取到了a空间中存储的值,在内存中开辟fun2 空间,p 指针类型(32位 4个字节/64位 8个字节)printf("a:%d b:%d\n", a, b); // 300 20  // *&x ---> x return 0;
}int fun(int x, int y)
{x = 100;y = 200;return x+y;
}void fun2(int *p)
{*p = 300; //地址传递,指针 p 解引用可以获取到这个指针指向的对应的空间,它可以改变函数外面的某一个变量 传递结束后,fun2 被释放
}    
//因此 scanf("%d",&a); 函数中的传参是取地址传递,与上述 fun2 同理,因为值传递内存释放后原有的数值不发生改变 而地址传递会获取到“房间”中的值,并改变这个地址中存储的内容//函数的返回值 --> 定义与返回值前后一致
int *fun(void) 
{int *p;return p;
}

以上。便是值传递和地址传递的区别。

我是一个十分热爱技术的程序员,希望这篇文章能够对您有帮助,也希望认识更多热爱程序开发的小伙伴。
感谢!

http://www.15wanjia.com/news/24116.html

相关文章:

  • 营销型网站 策划运营网站seo黑帽有哪些技术
  • wordpress readd长沙百度网站推广优化
  • 贵州碧江区住房和城乡建设局网站热搜词排行榜关键词
  • 本地免费发布信息网站培训行业seo整站优化
  • 吉安网站建设罗湖区seo排名
  • 网站设计客户对接流程太原网站建设制作
  • 深圳牛商网络骗局百度优化怎么做
  • 网站推广软件免费下载西安优化外包
  • 电子商务网站建设策划说十大新媒体平台有哪些
  • wordpress多站点开启mac923水蜜桃923色号
  • 服务器网站怎么做新余seo
  • 专做视频素材的网站巨量引擎广告投放平台代理
  • 网络营销的特点哪四个学seo如何入门
  • 网站开发 原理更厉害的病毒2024
  • 哪个网站可以做excel网站优化策略分析论文
  • 网站建设方案模板seo基础知识培训
  • 如何备份网站数据库山西seo优化
  • 用扶持小企业名誉诈骗做网站投资汕头网站建设方案推广
  • 网站开发硬件环境网站推广优化业务
  • 南昌市 做网站的公司推广公司哪家好
  • 手机网站单页面厦门seo网站推广
  • wordpress图片 高清南宁seo外包靠谱吗
  • 制作公司网站学seo需要多久
  • 西安市人民政府门户网站情感式软文广告
  • 网站建设与规划试卷高端网站建设哪家便宜
  • 用家庭宽带做网站 没有8080端口可以吗关键字c语言
  • 长春财经学院招生简章深圳网络优化公司
  • 企业网站建设哪家服务好长春视频剪辑培训机构
  • 网站代运营价格百度下载官方下载安装
  • 云梦网站怎么做浮窗优化设计单元测试卷