int是多少位的,int是什么词的标志

  

  我们之前说过,指针和数组是有内在联系的,所以在实际的工程项目代码中,它们的组合被广泛使用。同时,在很多面试中,面试官也喜欢问“指针数组”和“数组指针”的区别和应用。所以今天我们就来说说两者的区别和用法。   

  

  指针数组和数组指针   

  

  区分本质指针数组:本质是一个数组,指针是一个修饰符,表示这个数组存储的所有内容都是指针变量。   

  

  数组指针:本质上是指针,Array是修饰符,表名的指针指向一个数组。   

  

  我们从以下常见的表达方式来分析一下吧:   

  

  int * p5int(* p)5;int *(P5);表达式的分析首先,为了分析上面三个表达式,我们需要解释一下表达式中出现的运算符(*和)的优先级。   

  

  C语言操作员优先级   

  

  从上图可以看出优先级:*   

  

  好了,接下来开始分析:   

  

  因为int *p5的优先级比*高,所以变量P组合在5之前,所以P是数组,int *是修饰符。一般来说,P是一个五元素的数组,数组中的元素都是指针,指针指向的元素类型是int类型;整个符号是一个指针数组。   

  

  因为int (*p)5(),P先和*结合,所以P是指针,然后和5结合。这时,5就变成了修饰语;即整体P是一个指针,指针指向一个数组。数组有五个元素,数组中存储的元素是int类型;整个符号是一个数组指针。   

  

  int *(p5)'s优先级本来就高于*,再加上符号()的作用,P必须先和5结合,所以P是数组,int *是修饰符。一般来说,P是一个五元素的数组,数组中的元素都是指针,指针指向的元素类型是int类型;这与第一种情况一致(其中运算符()是可选的),整个符号是一个指针数组。   

  

  首先要知道一般规则:int * p;(p是指针);int p5(p是一个数组)   

  

  然后判断核心(变量名P)先和谁结合。如果核心与*结合,说明核心是指针;如果核心与结合,说明核心是数组(求结合);然后向外展开(找修改器)。   

相关文章