数组名和指针的区别
作者:SHI家的鱼 链接:https://www.zhihu.com/question/41805285/answer/202040382 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1. 己址 数组和指针,都是有自己的地址的 。在代码中,你可以用取地址运算符“&”来取得。程序中是: printf("%x %x\n", &pInt, &arr); 2. 己值 数组和指针,都是有自己的数据值的 。程序中,数组arr的数据值,是arr[0]的地址;而对于指针pInt,通过 pInt = arr; 之后,pInt的数据值也是arr[0]的地址。 但是,有一点不一样的是,arr的数据值是不可以改变的,是个常量;而指针变量pInt的数据值,是可以改变的 ,你可以: pInt = arr; 你也可以: pInt = arr + 1; 随你! 另外,都可以在数组和指针的己值上,做运算 ,比如: arr + 1; pInt + 1; 3. 他值 数组和指针,在获取他值时,在代码的写法上是一样的 。比如对于数组,你想获取第2个元素的值,你可以这样写: arr[1];*(arr + 1); 对于指针pInt,你也可以这样写: pInt[1]; *(pInt + 1); 也可以在数组和指针的他值上做运算,比如: arr[0] + 1; *arr + 1; *(arr