names[1] 指向的是 字符串对象"XYZ" 的内存位置 此时字符串 s 赋值 names[1] 是s指向了name[1]指向的内存位置 然后name[1] 指向新的指针地址的时候,不改变s的存储的指针地址。
names │ ▼ ┌───┬───┬───┬───┬ │ │ABC│XYZ│zoo│ └───┴───┴───┴───┴
执行names[1] = "cat";时,它指向一个新的内存位置:
names[1] = "cat";
names[1] ────────────────┐ │ ▼ ┌───┬───┬───┬───┬───┬───┬───┬───┬ │ │ABC│XYZ│zoo│ │ │ │cat│ └───┴───┴───┴───┴───┴───┴───┴───┴ s ┐ │ ▼ ┌───┬───┬───┬───┬───┬───┬───┬───┬ │ │ABC│XYZ│zoo│ │ │ │cat│ └───┴───┴───┴───┴───┴───┴───┴───┴
但是,原有字符串变量s存储的内存位置 并不因为name[1]的修改而修改,只是无法通过names[1]引用到它而已。
Sign in to make a reply
用户7531025463
names[1] 指向的是 字符串对象"XYZ" 的内存位置 此时字符串 s 赋值 names[1] 是s指向了name[1]指向的内存位置 然后name[1] 指向新的指针地址的时候,不改变s的存储的指针地址。
执行
names[1] = "cat";
时,它指向一个新的内存位置:names[1] = "cat";
但是,原有字符串变量s存储的内存位置 并不因为name[1]的修改而修改,只是无法通过names[1]引用到它而已。