(擦,没写完就发出来了,继续补充)
变量 s 指向这地址 0x0001,这个地址是传递出去的。
然后修改这个变量:
s = "world";
s 指向的地址变了:
s:
0x0002 => "world"
而之前传递出去的 0x0001 里的数据依然是 "hello"。所以它们 “互不影响”。
- 1
(擦,没写完就发出来了,继续补充)
变量 s 指向这地址 0x0001,这个地址是传递出去的。
然后修改这个变量:
s = "world";
s 指向的地址变了:
s:
0x0002 => "world"
而之前传递出去的 0x0001 里的数据依然是 "hello"。所以它们 “互不影响”。
用户3204945508
结合 C语言的 “二级指针” 和 “指针数组” 应该会比较好理解,但 C 语言我也忘得差不多了......
不知到这样理解对不对:
---------------------------------------------------
以之前的的字符串数组为例:
首先,这个数组它是有3个地址的,这3个地址又分别保存着另外3个地址,而另外3个地址才是保存着字符串:
【地址 => 数据】 【地址 => 数据】
0x0001 => 0x0007;0x0007 => "ABC"
0x0002 => 0x0008;0x0008 => "XYZ"
0x0003 => 0x0009;0x0009 => "zoo"
然后修改一个元素:
发生的变化是:
0x0003 => 0x000A;0x000A => "cat"
而 names 变量,指向着地址 0x0001,这个地址才是被传递出去的。所以,这就能理解为什么 “一方修改,两方影响”,因为大家用的都指着同一个地址 “0x0001”。
以上是 “字符串数组” 的问题,接下来是 “字符串” 的问题: