码迷,mamicode.com
首页 > 其他好文 > 详细

int *a[] 与(int *)a【5】的区别

时间:2014-07-21 11:16:16      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:size   指针   数组      元素   优先级   

*a[5] 是指针数组  可以指向5个值

(*a)[5]  是一个指针,但这个指针只能指向包含5个元素的一维数组   

a是一个数组,每个元素都是个指针。
b是一个指针,指向一个数组

1.int *a[5]:指针数组。本质是数组。sizeof(a)=20。sizeof计算数组的大小。5个int型即为20.
sizeof(*a)=4。数组元素是指针。*a代表的是一个指针,此求的是int  型指针的大小为4。
2.int (*a)[5]:数组指针。本质是指针。sizeof(b)是求int型指针的大小为4.*b代表是具有5个int型变量的数组,所以sizeof(*b)=20

   int *a[5];//a是一个数组,里面存放的元素类型是int*类型。含有5个元素
    int (*b)[5];//b是一个指针,指向的是一个int[5]的数组。

int *a[5];因为[]比*优先级高,所以它首先是一个数组,然后该数组的元素的类型是int *,所以这是一个指针数组;
int (*a)[5];因为()是超脱于优先级之外的,所以它首先是一个指针,然后该指针指向的类型是int [5],即含有5个元素的数组,所以它是一个数组指针,如果a++,它将跨过五个整型的长度。

int *a[] 与(int *)a【5】的区别,布布扣,bubuko.com

int *a[] 与(int *)a【5】的区别

标签:size   指针   数组      元素   优先级   

原文地址:http://www.cnblogs.com/zhaoxinshanwei/p/3857746.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!