(二)c语言之数组详解

数组首元素区分: a, &a, a[0]

(1)  a 作为数组名,代表数组首元素地址;第二个元素地址为a+1, 第n个元素地址为a+n

(2)  由上可得,数组的元素值;  首元素值*a 相当于 a[0] ;  第二个元素值*(a+1) 相当于a[1],第n个元素值为*(a+n) 相当于 a[n];

(3)  由上可得,数组的首元素地址也可以写为 &a[0] 相当于 a ; 第二个元素地址为&a[1] 相当于 a+1 , 第n个元素地址为 &a[n]  相当于 a+n;

(4) &a 作为数组地址,不同于以上,需要用取地址符&才能得到,且取的是整个数组的地址,&a+1表示指向整个数组的最后面的位置;

(5) &(a+1) 非法语句

#include <stdio.h>

int main()
{       
        int a[8] = {0};
        printf("a    数组首地址:%p\n", a);
        printf("&a[0]数组首地址:%p\n", &a[0]);
        printf("&a   数组首地址:%p\n", &a);
        printf("------------------\n\n");

        printf("a+1    数组第二个元素地址:%p\n", a+1);
        printf("&a[1]  数组第二个元素地址:%p\n", &a[1]);
        printf("&a+1   数组最后一个位置:%p\n", &a+1);
        printf("------------------\n\n");

        printf("a+8    数组最后一个元素地址:%p\n", a+8);
        printf("&a[8]  数组最后一个元素地址:%p\n", &a[8]);
        printf("&a+1   数组最后一个位置:%p\n", &a+1);
        
}
a 数组首地址:0x7ffdd2b194f0&a[0]数组首地址:0x7ffdd2b194f0&a   数组首地址:0x7ffdd2b194f0------------------

a+1 数组第二个元素地址:0x7ffdd2b194f4&a[1]  数组第二个元素地址:0x7ffdd2b194f4&a+1   数组最后一个位置:0x7ffdd2b19510------------------

a+8 数组最后一个元素地址:0x7ffdd2b19510&a[8]  数组最后一个元素地址:0x7ffdd2b19510&a+1   数组最后一个位置:0x7ffdd2b19510
 

相关推荐