日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java指针的数组_java 指针 数组的使用

發布時間:2023/12/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java指针的数组_java 指针 数组的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

package com.tarena.day05;

import java.util.Arrays;

public class Point {

/**

*java 指針演示

*/

static final int arr4[] = { 8, 3, 5, 1, 4, 2, 7 };

public static void main(String[] args) {

//1, 靜態初始化與動態初始化的原理是一樣的

int[] arr = { 8, 3, 5, 1, 4, 2, 7 };// 靜態初始化

int[] arr2 = new int[] { 8, 3, 5, 1, 4, 2, 7 };// 動態初始化

// 因為創建數組的原理是一樣的,都是在堆空間里申請內存并賦值,所以使用也沒有去別

arr[0] = 0;//arr = [0, 3, 5, 1, 4, 2, 7]

arr2[0] = 0;//arr2 = [0, 3, 5, 1, 4, 2, 7]

//2,java數組名就是指針

//論據1 使用指針修改原來數組的值

int[] arr3 = arr;// arr3 就是java的指針了 相當于 C語言的 int *arr3 = arr;指針arr3指向arr的地址

arr3[1] = 0;//使用arr3指針修改arr的1號地址的值,

System.out.println(Arrays.toString(arr));// 這時arr = [0, 0, 5, 1, 4, 2, 7]

//論據2 使用指針指向新數組的值

arr = a();// arr = [2, 1] arr的地址指向了方法a中的變量a在堆空間申請的地址。arr3仍然指向arr的原地址

System.out.println(Arrays.toString(arr));// [2, 1]

System.out.println(Arrays.toString(arr3));// [0, 3, 0, 1, 4, 2, 7]

//論據3 引用傳址

swap(arr,0,1);

System.out.println(Arrays.toString(arr));// [1, 2]

/*

* 因此java數組做參數是引用傳址而不是值拷貝,所以說java的數組是指針

*/

//論據4 java數組不是數組

/*

* c中的數組指向的地址是不能改變的,而c中的指針是可以改變的,然而java的數組恰恰可以改變指向的地址

* 所以可以說明java數組就是c指針。

* 某位老師說過c數組就是指針其實這樣說并不嚴謹,嚴格說c數組是常指針,因為c數組的地址是不能改變的。

*/

//論據5 java數組可以有常指針但沒有常量

/*

* 雖然arr4是常指針,但是arr4據有指針的性質,所以arr4里的值是可以改變的。

*/

arr4[0] = 0;//編譯通過 數組的值不是常量

//arr4 = arr;//此處編譯不通過 指針arr4是常指針不可以指向新地址。

/*

* 以上說明java的數組就是指針,所以數組按照指針用是完全可以的。包括,引用傳址,修改堆空間的值,指向新地址等。

*/

}

public static void swap(int a[],int i,int j)

{

int t = a[i];

a[i] = a[j];

a[j] = t;

}

public static int[] a() {

int[] a = { 2, 1 };

return a;

}

}

總結

以上是生活随笔為你收集整理的java指针的数组_java 指针 数组的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。