IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Pourquoi la modif d'un int[] influence un autre int[]?


Sujet :

Langage Java

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 7
    Par défaut Pourquoi la modif d'un int[] influence un autre int[]?
    Bonjour,

    J'ai un problème de compréhension, probablement de référent.

    Dans le programme suivant (fichier joint ou ci-dessous), je crée un tableau d'entier qui j'initialise {1,2,3,4,5}. Puis je créer une deuxième tableau d'entier qui devient égal au premier.

    1- Puis, en modifiant un élément du premier tableau, comment se fait-il que le deuxième en est également modifié?

    2- Quel est le mécanisme de base que je n'ai pas compris?

    3- Pourquoi en faisant la même chose avec des entiers, ça marche?

    Grand merci pour vos réponses.

    Le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    public class Test {
     
    	static void affiche(int[] v){
    		  for (int i=0; i<v.length; i++){
    		    System.out.print(v[i]+" ");
    		}
    		System.out.println();
    	}
     
    	public static int[] clone(int[] v){
    		int[] res = new int[v.length];
    		for (int i = 0; i<v.length; i++){
    			res[i]=v[i];
    		}
    		return res;
    	}
     
    	public static void main(String[] args) {
     
    		int[] v1 = {1,2,3,4,5};
    		int[] v2 = new int[5];
    		int[] v3 = new int[5];
    		int[] v4 = new int[5];
     
    		// Je copie v1 dans les vecteurs v2, v3 et v4 de différentes manières.
    		v2 = v1;
    		for (int i=0; i<v1.length; i++){
    			v3[i] = v1[i];
    		}
    		v4 = clone(v1);
     
    		v1[1] = 8;
     
    		affiche(v1); // Affiche 1 8 3 4 5
    		affiche(v2); // Affiche 1 8 3 4 5
    		affiche(v3); // Affiche 1 2 3 4 5
    		affiche(v4); // Affiche 1 2 3 4 5
             }
    }
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/07/2009, 04h00
  2. Réponses: 3
    Dernier message: 04/03/2007, 10h34
  3. Réponses: 1
    Dernier message: 22/06/2006, 10h47
  4. Ajout & modif d'une table vers l'autre
    Par BOTIGUA dans le forum Access
    Réponses: 1
    Dernier message: 17/02/2006, 19h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo