C语言代码,这个语句什么意思?做了什么事?求指点。 50

怎么理解这三条语句?int(*ptr)[5];int*ptr[5];int(*(*ptr)(int*))[5];... 怎么理解这三条语句?
int (*ptr)[5];
int* ptr[5];
int (*(*ptr)(int *))[5];
展开
 我来答
仙戈雅3n
2017-06-02 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:897万
展开全部

Well,或许看看实例代码会更有利于理解:

1)指向由XXX个元素组成的一维数组的指针(也称为指向数组的指针)

int numbers[] = { 1, 2, 3, 4, 5 };
int(*ptr)[5]; // ptr是指向一个包含了5个元素且为int型的指针
ptr =&numbers;// 取numbers的地址

 2)指针数组:数组里的每个元素都是指针

int* ptr[5]; // 数组每个元素都是指针,即每个元素都可以保存地址,理解这点很重要!!!
int a = 1, b = 2;
ptr[0] = &a;
ptr[1] = &b;

3)指向指针函数的数组的指针

int(*(*ptr)(int *))[5];  // 此用法没有研究和使用价值
int (*pf(int *))[5];
ptr= &pf;
谷歌地
2017-06-02 · TA获得超过154个赞
知道小有建树答主
回答量:206
采纳率:57%
帮助的人:69万
展开全部
第一个数组指针,本质是一个指针,指向一个数组,数组五个元素
第二个指针数组,本质是一个数组,数组里存了五个指针
第三个http://tieba.baidu.com/p/641713533
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6a5df6e
2017-06-02 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:110
采纳率:66%
帮助的人:42.4万
展开全部
int (*ptr)[5],ptr是一个指针,指向有5个整型元素的数组;
int* ptr[5],ptr是一个数组,数组有5个元素,数组中的元素是指向整数的指针;
int (*(*ptr)(int *))[5], ptr是一个函数指针,它指向的函数的参数是 int *,即指向整数的指针;
ptr指向的函数的返回值是 int(*)[5],即指向有5个整型元素的数组的指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式