Chinaunix首页 | 论坛 | 博客
  • 博客访问: 480648
  • 博文数量: 98
  • 博客积分: 3265
  • 博客等级: 中校
  • 技术积分: 1227
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-23 00:29
文章分类

全部博文(98)

文章存档

2012年(6)

2011年(83)

2010年(9)

分类: C/C++

2011-03-06 12:03:11

在C语言中,*,()、[]运算符的优先级别要高于*指针运算符。
int *p;//p为指向整型数据的指针变量

int *p[4];//p为一个指针数组,里面有4个元素,每个元素都是一个指向整型变量的指针。因为[]运算符的优先级别高,因此p首先与[4]结合,也就是说p是一个数组名,接下来再看该数组中的元素究竟是什么,从前面的int *可以看出数组中的元素是指向整型变量的指针。

int (*p)[4];//p是一个指针,它指向的是一个含有4个整型元素的数组。因为()运算符优先级别高,因此p先与*结合,这样就确定了p肯定是一个指针,接下来的工作就是看看究竟p这个指针指向什么,抛开(*p)不看,假如是int a[4]的话,那大家都会知道这个数组a是一个包含4个整型变量元素的一维数组,因此指针p就是指向这样一个数组——包含4个整型元素的数组。

int *p();//p是一个函数名称,该函数没有任何参数,该函数返回一个指针,该指针指向一个整型变量。同样,先从优先级来分析,因为()的优先级别高,因此p首先与()结合成p( ...
阅读(1840) | 评论(0) | 转发(0) |
0

上一篇:typedef define

下一篇:函数-参数-返回值

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