- 一维数组名:
int array[5] = {1,2,3,4,5};
- 1、
array
:表示数组的名字,同时也是数组的首地址
; - 2、
array[1]
:取数组第一个元素
的值
(特别注意:
数组的下标是从0开始
的),等价于*(array+1)
; - 3、
&array[1]
:取数组第一个元素
的地址
,等价于array+1
; - 一级指针变量名:
int k = 100;int *p = &k;
-
1、
p
:表示指针变量名,存放的是地址; -
2、
*p
:取指针变量指向的内存空间的数据; -
3、
p+1
:向后偏移一个int类型
大小的空间; -
4、
*(p+1)
:取p+1指向
的内存空间的数据; -
区别:
-
1、函数传参时(
int array[ ] <==> int *array
) -
2、可以通过一级指针指向一维数组;
-
3、一级指针变量名
不完全等价于
一维数组名; -
4、一级指针变量名是
一个变量
,可以被修改; -
5、一维数组名字是
一个常量
,不可以被修改;