关于数组a[3] 和3[a]的问题

刚看到 a[3] 和3[a]这样的写法,感觉很奇怪,实际动手操作一下就会发现!

a[3]的值和3[a]的值是一样的!

百思不得其解,后来终于想明白了。

a[3]   *(a+3)                    //a的地址加上3个单位的偏移

3[a]   *(3+a)                    //3的地址加上个a单位的偏移

如果有不同的看法,欢迎跟帖!

在不同的编程语言中,将数组B复制到数组A有不同的实现方法。 ### Java实现 在Java里,可以使用`System.arraycopy`方法把数组B复制到数组A。以下是示例代码: ```java import java.util.Arrays; public class ArrayCopyExample { public static void main(String[] args) { int[] b = {1, 2, 3, 4, 5}; int[] a = new int[b.length]; // 把数组b从0开始长度为b.length的元素复制到数组a的从0开始的数组部分 System.arraycopy(b, 0, a, 0, b.length); // 输出数组 System.out.println(Arrays.toString(a)); } } ``` 此代码借助`System.arraycopy`方法,把数组B的元素复制到数组A中,`System.arraycopy`的参数依次为源数组、源数组起始位置、目标数组、目标数组起始位置复制的长度[^1]。 ### C语言实现 在C语言中,若要复制字符数组,可自定义函数实现;若为普通数组,可通过循环来实现。以下是字符数组复制的示例代码: ```c #include <stdio.h> void copy_string(char* from, char* to) { for (; *from != &#39;\0&#39;; from++, to++) *to = *from; *to = &#39;\0&#39;; } int main() { char b[] = "I am a teacher."; char a[20]; char* pb = b; char* pa = a; copy_string(pb, pa); printf("string_a=%s\n", a); return 0; } ``` 上述代码定义了`copy_string`函数,用于把字符数组B复制到字符数组A,通过指针遍历赋值来完成复制操作,最后在`main`函数中调用该函数实现复制[^3]。 ### C#实现 在C#中,可以使用`Array.Copy`方法来复制数组。以下是示例代码: ```csharp using System; class Program { static void Main() { string[] b = { "apple", "banana", "cherry" }; string[] a = new string[b.Length]; Array.Copy(b, a, b.Length); foreach (string item in a) { Console.WriteLine(item); } } } ``` 此代码使用`Array.Copy`方法将数组B复制到数组A,`Array.Copy`的参数依次为源数组、目标数组复制的长度[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值