#include "iostream.h"
int *findmax(int *array,int size,int *index);
void main(void){
int a[]={33,91,54,67,82,37,85,63,19,68}, *maxaddr, idx ;
maxaddr=findmax(a,sizeof(a)/sizeof(*a),&idx);
cout<<idx<<endl;
cout<<maxaddr<<endl;
cout<<a[idx]<<endl;
}
int *findmax(int *array,int size,int *index) {
int max,i;
max=*(array+0); //array[0];
for (i=1;i<size;i++)
if (max<*(array+i)) {
max=*(array+i);
*index=i;
}
return(array+*index);
}
当中maxaddr=findmax(a,sizeof(a)/sizeof(*a),&idx);的sizeof(*a)是什么意思?是指向a数组的首元素的大小的意思吗?
还请问大家在这个例子中使用函数指针有什么优点。为什么要使用到指针
一个C++问题高手请进!
答案:5 悬赏:70 手机版
解决时间 2021-05-10 16:54
- 提问者网友:太高姿态
- 2021-05-10 05:55
最佳答案
- 五星知识达人网友:由着我着迷
- 2021-05-10 07:19
sizeof(a)是整个数组占用的字节总长度,这里应该是40字节
sizeof(*a)是数组第一个元素的字节长度,这里int是4字节
sizeof(a)/sizeof(*a)就是求数组的元素的个数,这里40/4=10
你声明了一个类对象的指针,你要访问它的成员,必然要用到指针的了
好处麽 某 些情况下,比如函数的形参,明显传递一个指针比传递一个对象要高效
同一函数指针变量可以保存不同的函数名,即可以实现不同函数的调用,这实际上是"多态"的内容;
通过函数指针可以很好地完成"菜单"程序设计技术,MFC中的消息就是靠"函数指针"来实现调用的
函数指针可以作为形式参数,实现在一个函数中用通过函数指针调用其它函数的目的.
总之,"函数指针"属于C语言的高级编程专题.
那个 希望能帮到你
全部回答
- 1楼网友:鸠书
- 2021-05-10 10:14
maxaddr=findmax(a,sizeof(a)/sizeof(*a),&idx);的sizeof(*a)是a数组的首元素的大小的
sizeof(a)/sizeof(*a)就是求数组a的元素个数
这个例子中并没有使用函数指针,而是用的是返回指针值的函数,好处是在检索数组中的一个值容易 方便
- 2楼网友:孤独入客枕
- 2021-05-10 09:13
maxaddr=findmax(a,sizeof(a)/sizeof(*a),&idx);的sizeof(*a)是什么意思
sizeof(*a)意思是 得到指针a指向的数据所占据的内存大小
- 3楼网友:山有枢
- 2021-05-10 08:46
maxaddr是取得a数组中最大的那个数的地址。。。。。
- 4楼网友:鱼忧
- 2021-05-10 07:41
求 数据 a的大小
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯