Unity 3D游戏开发 - C#语法基础 | 数组之内存结构

本文深入探讨了值类型与引用类型的区别,包括它们在内存中的存储方式:值类型存储在栈中,如int、float;引用类型存储在堆中,如数组、字符串。并详细解释了值传递与引用传递的概念及示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

值类型与引用类型

  • 值类型
    • int float double bool char 都是值类型
    • 值类型的值存储在内存的栈中
    • int 类型间变量传值
      • int a = 10; int b = a;
      • 此时单独修改b的值,a的值不会改变,这种传递叫值传递
    • 这时变量传递是拷贝一个具体的值给对方。
  • 引用类型
    • 数组 字符串
    • 引用类型的值存储在内存的堆中
    • int 类型数组间变量传值
      • 此时单独修改intB中元素的值,intA的值也会改变,这种传递叫引用传递。 

                    int[] intA = new int[] { 111, 222, 333, 444 };
                    int[] intB = intA;
        
                    intB[0] = 100;
        
                    foreach(int i in intA)
                    {
                        Console.WriteLine(i);
                    }
        
                    Console.WriteLine("-----------------------------");
        
                    foreach(int j in intB)
                    {
                        Console.WriteLine(j);
                    }
        
                    Console.ReadKey();
    • 这时变量传递是拷贝一个地址给对方。

数组的内存结构

  • 数组在内存中是一块连续的存储空间存储的。
  • 最低的地址对应第一个元素,最高的地址对应最后一个元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值