本文主要是介绍arr与arr的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、定义区别
arr表示数组首元素地址
&arr表示整个数组,取出的是整个数组的地址(也叫数组指针)
二、二者偏移量不同
arr与&arr都指向数组的首地址
arr偏移量为一个int的大小
arr+1:指向下一个元素的地址
&arr偏移量为6个int的大小
三、数组指针
int (*p)[n]={} (n为个数)
其中(*p),加()的原因是*的优先级低于[ ]。
int (*p)[5]={0,0,0,0,0};
p指向包含5个int类型的数组,p指向这个数组的首地址
#include <stdio.h>
int main()
{int temp[5] = {1, 2, 3, 4, 5};int (*p)[5] = &temp;int i;for(i = 0; i < 5; i++){printf("%d\n", *(*p + i));//或者 printf("%d\n", (*p)[i]);} return 0;
}
temp指的是这个数组的 第一个元素 的首地址。
&temp 指的是这 整个数组 的首地址。
这篇关于arr与arr的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!