• new操作符


      对于非数组类型<初值表达式>为可选项,对于数组类型则不含此项,应换为当作下标上界的表
    达式。
      格式举例:
      (1) new int;
      (2) new int(5);
      (3) new char[10];
      (4) new int[n];
      (5) new double[m+1][N+1];
      (6) new char*(&x);
      执行第1条运算时将分配到具有4个字节的整数存储空间,并返回该存储空间的地址,即指向该
    存储空间的指针,该指针的类型为int*。
      执行第2条运算时同样分配到具有4个字节的整数存储空间,返回该存储空间的地址,并且对该
    存储空间进行初始化,使之存储一个整数5。
      执行第3条运算时,首先分配到具有10个字节的字符数组空间,然后返回该存储空间中存储第一
    个元素的地址,其返回值类型为char*。
      执行第4条运算时,首先分配到能够存储n个整数的数组空间,然后返回该存储空间首地址,即
    存储第一个元素的地址,其返回值为int*类型。
      注意:当采用new运算动态分配一维数组空间时,该数组的长度n既可以为一个常量表达式,也
    可以为一个变量表达式。而在变量定义语句中定义的数组,其每一维的长度都必须是一个常量表
    达式,不允许是变量表达式。当只有在程序运行时才能够确定待使用数组的长度时,则只能采用
    动态分配建立该数组,不能采用变量定义语句定义它。
      执行第5条运算时,首先分配(m+1)*(N+1)个双精度数存储空间,它是一个二维双精度数组空间
    ;然后返回第一个元素的地址。由于对应的一维数组的元素类型为double[N+1],所以返回值的类
    型为double(*)[N+1]。
      注意:当采用new运算动态分配二维数组空间时,第二维的长度(即列数)必须为常量表达式,
    第一维的长度(即行数)可以为常量表达式,也可以为变量表达式。在上述第5条运算中,N必须
    为一个事先定义的整型常量,m可以为常量,也可以为变量。
      同理,当采用new运算动态分配二维以上数组的存储空间时,只有第一维的尺寸是可变的,其余

    维的尺寸都必须为常量,返回值为一个指向数组的指针,该数组的类型为除上述第一维之外剩下

    的数组类型。

  • 相关阅读:
    java中4种修饰符访问权限的区别
    Java中List的排序方法
    Hibernate事务
    @Component、@Service、@Constroller
    MySQL查看一个表的创建文本以及删除表某列的索引
    深入Session2
    Tomcat容器的Session管理
    深入Session
    使用spring mvc或者resteasy构建restful服务
    Spring MVC学习回顾
  • 原文地址:https://www.cnblogs.com/bigcat814/p/2683466.html
Copyright © 2020-2023  润新知