• 创建基于栈的数组


    using System;
    
    namespace exercise {
        class Program {
            static unsafe void Main(string[] args) {
                //创建基于栈的数组
                decimal* pDecimals = stackalloc decimal[10];
    
                int size;
                size = 20; //or some other value calculated at runtime
                double* pDoubles = stackalloc double[size];
                //把第一个元素(数组元素0)设置为3.0
                *pDoubles = 3.0; // pDoubles[0] is the same as *pDoubles
                //把数组的第二个元素(元素编号1)设置为8.4
                *(pDoubles + 1) = 8.4; // pDoubles[1] is the same as *(pDoubles +1)
                //可以用表达式 *(pDoubles + X) 访问数组中下标为X的元素。
                //如果p是任意指针类型,X是一个整数,表达式 p[X]就会被编译器解释为*(p + X),这适合于所有指针。
    
                //下面的代码会抛出一个异常,抛出异常的原因是:使用越界的下标来访问数组
                double[] myDoubleArray = new double[20];
                myDoubleArray[50] = 3.0;
                //如果使用stackalloc声明一个等价的数组,对数组进行辩解检查时,这个数组中就没有封装任何对象,
                //因此下面的代码不会抛出异常:
                pDoubles[50] = 3.0;
    
            }
        }
    }

    --摘自《C#高级编程》

  • 相关阅读:
    初识HTML5
    java_类的有参方法
    示例:人机猜拳(请各位大佬看下)
    java-类和对象(笔记)
    Redis设计与实现——多机数据库的实现
    Redis设计与实现——独立功能的实现
    mina
    GUAVA-cache实现
    GUAVA-ListenableFuture实现回调
    Netty多协议开发
  • 原文地址:https://www.cnblogs.com/grj1046/p/2854252.html
Copyright © 2020-2023  润新知