数组名和指针的区别
int arr[] = {1,2,3,4,5}; 定义一个数组,数组名为 arr,分别打印arr 本身的地址,arr 首元素的地址,以及arr本身;发现三者的值是相同的; 变量的三要素:变量名称;变量,即名为arr变量自己的地址,该地址存储了 arr 变量;arr 的值,为所指对象的值;
1.数组名取地址得到的是数组名所指元素的地址;对指针取地址得到的是指针变量自身的地址; 2.数组名是常量指针,指针时变量指针; 总结: 1.数组名代表了一个指向数组首元素的常量指针,一经定义,不可更改,数组名作为常量指针,其类型与数组元素类型相同。指针是变量指针,定义之后仍可更改,其类型在定义时确定; 2.当出现 sizeof,和&操作符时,数组名不在当成指向一个元素的常量指针来使用,而指针仍当成指向一个元素的变量指针来使用;