ByVal
ou ByRef
, en C# tu peux préciser ref
ou out
sur un paramètre, etc...
int
or a double
, are passed into methods by value. This means that any changes to the values of the parameters exist only within the scope of the method. When the method returns, the parameters are gone and any changes to them are lost.ref
(même emplacement mémoire) ou out
(l'appelé doit modifier la valeur) pour être pris par référence.
#include <stdio.h> void fontionQuiTue(int *a){ (*a)++; } int main(int argc,char ** argv){ int a=2; fontionQuiTue(&a); // Je crois que ça s'appelle passage par référence. printf("Magie %d/n",a); return 0; }
#include <stdio.h> void fonctionQuiTue_pointeur(int *a) { (*a)++; } void fonctionQuiTue_reference(int &a){ a++; } int main(int argc, char ** argv){ int a=2; fonctionQuiTue_pointeur(&a); printf("Magie %d/n", a); fonctionQuiTue_reference(a); printf("Magie encore plus %d/n",a); }
a
mais l'adresse de a
, ladite adresse est copiée dans le pointeur a
de fonctionQuiTue_pointer : passage par valeur.a
.final
, mais il ne s'agit en rien d'une obligation.final
).AccessibleObject.setAccessible(boolean)
, il est possible de changer même un attribut privé dans un objet.def fonction1(x,y,z): aux_x_fonction1=x aux_y_fonction1=y aux_z_fonction1=z ...