还学C和C++,一个概念很重要,就是你要把指针看成一条钥匙,指针指向的地址看成一个房间。
现在,p是钥匙的钥匙,但是这个钥匙的钥匙没有明确的房间。而name是一把钥匙,但这把钥匙能得到三把子钥匙,这三把子钥匙能到达三个房间,分别是]"china","japan","english".
你现在把p的值变为name的值,也就是说,p就是name,p也能够找到name的那三把子钥匙,最后打开的房间是同一个地方(在内存中也是这样的)
在这里面,p和name都是二级指针,p可在一定意义上等同于name,不同点是p毕竟不是数组名,*(p+i)与*(name+i)所指向的都是如“china”这样字符串的首地址,所以输出的都是一样的。就这样的啦。
p的地址与name首地址是一样的,你在程序中加一行cout<<&p<
首先,name是指向char *name[3]首地址,
而name又把首地址指向了p即p=name
所以呢*(p+i)等价于*(name+i)
所以OK
其实是一样的