不太能理解为什么打印出来的两个地址一样,个人理解两个地址差距应该很大,自己的理解在下面绘制的图里,希望大家帮忙看看哪儿理解出错了
帮你理解下指针吧。数组是连续的内存空间,数组元素全为指针变量的数组称为指针数组。而指针变量再内存中存的是地址。而普通变量再内存中才存的是值。把你的代码画成excel如图,可以看出name 和 Name[0]是同一个东西。
在C中,*ptr 为取ptr指针变量中存放的内存值后,把此内存值当成内存地址再取的对应的内存值。相当于excel的index函数
数组的地址,就是第一个元素的地址
这里的Names相当于char类型的二维数组
Names[0]与Names是一个东西,相当于二维数组的地址就是第一行的首地址
而Names[0]和Names[0][0]又是一样的,相当于第一行的首地址就是第一个元素的地址
======
你这里printf的就更简单了,Names[0]不就是name1么,当然一样了