まずはディープコピーとシャローコピーについて よくあるような図 a = [1,true,"X"];の後で 左側の同じものを参照してるのがシャローコピー、 右側の同じものを複製してaとbが別のものを指しているのがディープコピーです a.concat()は、a.slice()とか新しい配列返してくれるメソッドで元に変化加えなければなんでもいいです a[0] = 10;を実行すると 左側はb[0]も10、右側はb[0]はそのままの1です C言語のポインタだと、同じ場所を指すんじゃなく片方がもう片方を指してるからポインタとはちょっと違う 例: #include <stdio.h> int main(){ int a = 10; int *b = &a; int a2 = a; int *b2 = b; printf("%d %d %d %d\n",a,*b,a2,*b2); a = 20; pri