相信在学C语言的小伙伴都对数组和指针的关系有点迷惑,特别是当两者结合在一起时,今天我就带大家来分析一下C语言中int *p[n]和int (*p)[n]以及int *p()和int (*p)(),帮助大家更好地掌握数组和指针。
首先是int * p[n]和int (*p)[n]。由于C语言中[ ]和( )的优先级高于指针运算符 * ,所以int *p[n]等价于(int *) p[n],而这又是一个包含n个元素的数组,我们知道int p[n]是定义一个包含n个int类型数据的数组,所以(int ) p[n]就是定义一个包含n个int类型数据的数组,即包含n个指向int类型数据的指针的数组。
接下来看int (p)[n],还是拿int a[n]来对比,我们知道数组的首地址即是数组名,所以p即是一个数组的首地址,也就是说,p指向的内容,是一个数组的首地址。那么,p就是指向一个数组的指针,这个数组中的元素都是int。实际上,p相当于是一个二维指针。
int *p()即声明了一个返回值为int *类型的函数;
而int (*p)()即声明了一个函数,其中(*p)这个整体可以看作是函数名称,p代表函数的入口地址。p所指向的是函数的首地址,即指向函数的指针变量,且指针变量p可以进行加减运算指向其他函数。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算