byte[] a = { 1, 2, 3 };
byte[] b = { 11,22,33};
a = b;
a[1] = 111;
Console.WriteLine("输出值:"+b[1].ToString());
返回值为111 即C#中, = 操作符 进行的是指针赋值 a和b为数组a和b的首地址。
数组成员 = 操作符赋值byte[] a = { 1, 2, 3 };
byte[] b = { 11,22,33};
a[1] = b[1];
a[1] = 111;
Console.WriteLine("输出值:"+b[1].ToString());
返回值为 22,值类型数组的成员赋值时赋的是数值而非指针。
1.2 引用类型数组赋值首先定义一个数据类myint
class myint { public byte b; }
数组 = 操作符赋值
myint[] aa = { new myint() { b = 1 }, new myint() { b = 2 }, new myint() { b = 3 } };
myint[] bb = { new myint() { b = 11 }, new myint() { b = 22 }, new myint() { b = 33 } };
aa = bb;
aa[1].b = 111;
Console.WriteLine("输出值:" + bb[1].b.ToString());
返回值仍为111,即class的数组也是传递的地址。
数组成员 = 操作符赋值myint[] aa = { new myint() { b = 1 }, new myint() { b = 2 }, new myint() { b = 3 } };
myint[] bb = { new myint() { b = 11 }, new myint() { b = 22 }, new myint() { b = 33 } };
aa[1] = bb[1];
aa[1].b = 111;
Console.WriteLine("输出值:" + bb[1].b.ToString());
返回值还是111,证明在class的数组的每一个item中,=操作符赋值传递的是myint类的引用(地址指针)。
2.C++ []数组 = 符号赋值 原生数组int a1[]= {1,2,3};
int b1[]= {11,22,33};
a1 = b1;
编译器提示异常 error: array type ‘int [3]’ is not assignable。
C++的原生数组是不支持 = 操作符的。
QVectora1= {1,2,3}; QVector b1= {11,22,33}; a1 = b1; b1[1] = 111; qDebug()< 返回值 22,后续对b1数组成员的修改没有影响a1的数组成员。
QVectora1= {1,2,3}; QVector b1= {11,22,33}; a1[1] = b1[1]; b1[1] = 111; qDebug()< 返回值 22,数组成员的 = 操作符赋值也是传递的值。
在C++中也构建一个myint类
class myint { public: myint(quint8 q) { q1 = q; }; quint8 q1; };QVectora1; a1.append(new myint(1)); a1.append(new myint(2)); a1.append(new myint(3)); QVector b1 = {new myint(11),new myint(22),new myint(33)}; a1 = b1; b1[1] = new myint(111); qDebug()< q1; 返回 22
QVectora1; a1.append(new myint(1)); a1.append(new myint(2)); a1.append(new myint(3)); QVector b1 = {new myint(11),new myint(22),new myint(33)}; a1 = b1; b1[1]->q1 = 111; qDebug()< q1; 返回 111



