3.3 数组

//数组算是老熟人了。一种比较古老的数据结构,大小不变,不能随意添加,灵活性较差相比之下,C++更适用vector
 
数组的声明、定义
 
一维数组:a[d]。1.a是数组名;2.d是数组的维度,d必须是常量表达式;3.定义数组需明确指明数组类型,所以不能通过auto定义数组;4.数组元素只能是对象,也就是说不存在引用的数组。
 
数组的初始化:默认初始化,和显示初始化。其中,对于字符数组的显示初始化需要注意会在数组末尾自动添加‘\0’字符。
 
数组的拷贝和赋值:不能讲数组的内容拷贝给其他数组作为其初始值,也不能用数组为其他数组赋值。(非常僵硬了 ( Ĭ ^ Ĭ ))
 
当数组和引用指针结合在一起的时候,就会产生复杂的数组声明或者指针/引用声明:
 
                                                int *ptrs[10];                        //ptrs是含有十个整型指针的数组
                                                int &refs[10] = /*?*/;           //错误,不存在引用的数组
                                                int (*Parray)[10] = &arr;      //Parray指向一个含有十个整数的数组
                                                int (&arrRef)[10] = arr;        //arrRef绑定一个含有十个整数的数组
 
指针和数组
 
数组具有一个特性:在很多用到数组名字的地方,编译器都会自动将其替换为一个指向数组首元素的指针。由此,在一定情况下,数组的操作实际上是指针的操作。例:
                    
                                                int ia[] = {0,1,2,3,4,5,6,7,8,9};
                                                auto ia2(ia);
这个过程等价于:
 
                                                auto ia2(&ia[0]);
为方便设定数组首元素和尾元素的指针,C++11增添了两个标准库函数:begin和end。(是不是很眼熟 (๑¯◡¯๑),不过和vector成员不一样,这两个并不是成员函数)示例代码如下:
                        
                                                int ia[] = {0,1,2,3,4,5,6,7,8,9};
                                                int *beg = begin(ia);
                                                int *last = end(ia);
指向数组的指针可以执行所有的迭代器运算。(在P96和P99页中列出),包括解引用、递增、比较、与整数相加、两个指针相减等。用在指针和用在迭代器上意义完全一致。
 
//多维数组省略,没什么意思
 

转载于:https://www.cnblogs.com/NK-007/p/9172821.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 将Float数组转换为Double数组可以遍历Float数组并逐个转换为Double,然后存储到新的Double数组中。例如: ``` float[] floatArray = {1.1f, 2.2f, 3.3f}; double[] doubleArray = new double[floatArray.length]; for (int i = 0; i < floatArray.length; i++) { doubleArray[i] = (double)floatArray[i]; } ``` 或者使用Java8的Stream API: ``` float[] floatArray = {1.1f, 2.2f, 3.3f}; double[] doubleArray = Arrays.stream(floatArray) .mapToDouble(f -> (double)f) .toArray(); ``` ### 回答2: 要将一个Float类型的数组转换为Double类型的数组,可以通过循环遍历原始数组,并将每个元素进行类型转换。 首先,创建一个与原始数组相同长度的Double数组,用于存储转换后的结果。 然后,使用一个循环,从原始数组中取出每个Float元素,并将其转换为对应的Double元素。可以使用Java中的Float类的doubleValue()方法进行类型转换。 最后,将转换后的Double元素依次存入新创建的Double数组中。 以下是示例代码: ```java public class FloatToDouble { public static void main(String[] args) { Float[] floatArray = {1.1f, 2.2f, 3.3f, 4.4f, 5.5f}; // 创建一个与原始数组长度相同的Double数组 Double[] doubleArray = new Double[floatArray.length]; // 将Float数组转换为Double数组 for (int i = 0; i < floatArray.length; i++) { doubleArray[i] = floatArray[i].doubleValue(); } // 打印转换后的Double数组 for (double d : doubleArray) { System.out.print(d + " "); } } } ``` 执行以上代码,输出结果为:1.1 2.2 3.3 4.4 5.5,即成功将Float数组转换为Double数组。 ### 回答3: 要将float数组转换为double数组,可以通过遍历数组元素将每个float值转换为double值,并存储到一个新的double数组中。 可以使用如下的代码实现: ```java public static double[] convertFloatToDouble(float[] floatArray) { double[] doubleArray = new double[floatArray.length]; for (int i = 0; i < floatArray.length; i++) { doubleArray[i] = (double) floatArray[i]; } return doubleArray; } ``` 在这个代码中,我们首先创建一个与给定float数组长度相同的double数组。然后,通过遍历float数组的每个元素,将它们转换为double类型,并存储到新的double数组中。最后返回这个转换后的double数组。 使用这个方法,你可以将任何给定的float数组转换成double数组,并使用转换后的double数组进行其他操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值