首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

函数与指针求解,该如何处理

2012-05-09 
函数与指针求解都说指针很难,看到这一章的时候都很细心,但是书后面的习题和前面的例子真没啥联系,搞得每道

函数与指针求解
都说指针很难,看到这一章的时候都很细心,但是书后面的习题和前面的例子真没啥联系,搞得每道题都要到这里来问。。


C/C++ code
#include<stdio.h>int max(int *,int n,int *);int main(void){    int ar[10];    int i,m=0,index;    printf("Please enter 10 numbers:\n");    for(i=0;i<10;i++)        scanf("%d",&ar[i]);    m=max(ar,10,&index);//关于&index,声明的时候是指针*p,为什么传输进去是地址?    printf("The max is %d.index=%d.\n",m,index);//这里的index函数里根本没返回呀。。为什么数值正确?    return 0;}int max(int ar[],int n,int *p)//这里还是*p和&index;*p是一个数值,&index是地址呀。怎么互相连通呢?{    int i;    int m=ar[0];        for(i=0;i<n;i++)    {        if(m<ar[i])        {            m=ar[i];            *p=i;        }    }    return m;}


[解决办法]
C/C++ code
#include<stdio.h>int max(int *,int n,int *);int main(void){    int ar[10];    int i,m=0,index;    printf("Please enter 10 numbers:\n");    for(i=0;i<10;i++)        scanf("%d",&ar[i]);    m=max(ar,10,&index);//关于&index,声明的时候是指针*p,为什么传输进去是地址?//答:楼主还是好好去理解指针的概念吧。。。指针变量里存放的就是地址呀。。    printf("The max is %d.index=%d.\n",m,index);//这里的index函数里根本没返回呀。。为什么数值正确?答:通过修改指针指向的变量,从而间接修改变量的值。    return 0;}int max(int ar[],int n,int *p)//这里还是*p和&index;*p是一个数值,//&index是地址呀。怎么互相连通呢?//答:int *p ,表明形参类型是指向int型的指针,而并不是你说的“*p是一个数值”。{    int i;    int m=ar[0];        for(i=0;i<n;i++)    {        if(m<ar[i])        {            m=ar[i];            *p=i;        }    }    return m;} 

热点排行
Bad Request.