C#-函数的传值与传址
2024-08-20 13:41:00
传值就是将实参的值传到所调用的函数里面,实参的值并没有发生变化,默认传值的有int型,浮点型,bool型,char字符型,结构体等等。
传址就是将地址传到所调用的函数里面操作,实参的值也会跟着变化,传址的有数组和字符串string。
上面说的就牵扯到数据的分类,分为值类型和引用类型,值类型的就是传值的那种,引用类型包括字符串类型,数组和对象,字符串类型特殊,主要是因为字符串实际上是一个字符char[]数组,它在修改的时候并不是直接修改,而是新开辟了一个存储空间也就是建立了一个新的字符串,所以它在调用、赋值的using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace _1019传值传址
{
class Program
{
//一、传值-将变量的值传入函数中
public void Qiuhe(int a)
{
int b = a + ;
Console.WriteLine(b);
}
////写个函数,传值进去,传姓名、性别、年龄进去
//将年龄+10岁,
//return反馈回来 split分割
public string Fanhui(string name, string sex, int age)
{
age += ;
return name + "-" + sex + "-" + age;
} //三、out传址-仅仅将变量名带入函数,不考虑参数值,out自动默认return
public void Fanhui1(int a,out int b)
{
b = a + ;
} static void Main(string[] args)
{
//调用函数之前需要先初始化、实例化该Class类
Program Hanshu = new Program(); //一、传值-将变量的值传入函数中
int a = ;
int b = ;
Hanshu.Qiuhe(a);
Console.WriteLine(b);
//最后输出b结果为10,为什么不是5+10=15?
//因为外部定义的int b 与内部定义的int b 不是同一个b ,仅仅是用了同一个字母来表示而已
//二、一个函数只能返回一个值,将函数返回的值用split进行分割后放入一维数据获取多个值
string ss = Hanshu.Fanhui("张三", "男", );
string[] xx = ss.Split('-');
for (int i = ; i < ; i++)
{
Console.WriteLine(xx[i]);
}
//三、out传址
int aa = ;
int bb = ;
Hanshu.Fanhui1(aa, out bb);
Console.WriteLine(bb);
//传址:将这个变量名直接传输过去,若在另一边有赋值情况,这个变量名将变化
Console.ReadLine();
}
}
}
最新文章
- Linux网络下载命令 wget 简介
- GitHub 上有哪些完整的 iOS-App 源码值得参考?
- JavaScript之放大镜效果2
- bzoj 2595 [Wc2008]游览计划(斯坦纳树)
- [改善Java代码]覆写变长方法也循规蹈矩
- Mybatis源码解析-BoundSql
- <;<;精通iOS开发>;>;第14章例子代码彻底清除警告
- iOS监听模式系列之关于delegate(代理,委托)的学习
- Flutter安装之后cmd运行错误解决
- Confluence 6 配置 Office 转换器
- Android 基础 二 四大组件 Activity
- Python 线程和进程
- DNS主从复制及区域传送
- 2017-2018-2 165X 『Java程序设计』课程每周成绩公布
- 【Java】-NO.14.Java.4.Java.1.001-【Java JUnit 5 】-
- CNN卷积层:ReLU函数
- 【死磕 Spring】—— IoC 之 Spring 统一资源加载策略
- ZCTF-2017 比赛总结
- j.u.c系列(11)---之并发工具类:Exchanger
- DevExpress的安装方法与破解教程【转】