c语言中的数组首元素的地址和数组的地址是两个不同的概念,比如一个数组, int a[]={10,100}, 数组名a代表数组首元素的地址,&a代表数组的地址,数组地址&a用数组首元素的地址来代替,因此printf("%d\n",a)与printf("%d\n",&a)是相等的,但是a+1与&a+1是不相等的,比如如果a代表2,那么a+1就是6,&a+1就是10. 一个int占4个字节。
下面说一下数组类型,先看代码,其描述了怎么表述int a[5]这种数据类型。
int main()
{
typedef int(MYINT5)[5];
int i = 0;
MYINT5 array;
for (i=0; i<5; i++)
{
array[i] = i;
}
for (i=0; i<5; i++)
{
printf("%d ", array[i]);
}
getchar();
return 0;
}
MYINT5是一种数据类型,其描述了这是一个数组,数组大小是5,数据类型是Int。