Chinaunix首页 | 论坛 | 博客
  • 博客访问: 503974
  • 博文数量: 54
  • 博客积分: 5016
  • 博客等级: 大校
  • 技术积分: 954
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-23 11:00
文章分类

全部博文(54)

文章存档

2009年(5)

2008年(49)

我的朋友

分类: C/C++

2008-03-28 10:21:02

int *p[2];是指针数组,即p是一个长度为2的数组,数组元素是int*型指针;

int (*p)[2];是数组指针,p是个指针,指向一个长度为2的int型数组.

二维数组,比如int a[3][2],实际上可以看作长度为3的数组,每个数组元素是长度为2的int型数组.因此指向二维数组元素的指针需要int (*p)[2].
 
 
 
int *p[2];和int (*p)[2];
都是语句,先看下语句中的运算符。。
‘*’要比‘(’、‘)’、‘[’、‘]’的优先级低,
所以int *p[2];中的p先与“[]”结合是个数组。然后才是个放指针的数组。 p[2]是个数组。
int (*p)[2];中P先与“*”结合是个指针变量,然后才是指向有2列的数组的指针。 P是个指针。
阅读(1184) | 评论(0) | 转发(0) |
0

上一篇:fopen与open区别

下一篇:读写参数配置文件

给主人留下些什么吧!~~