VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 809|回复: 1

小白来啦 。关于指针的问题

[复制链接]
55_avatar_middle
最佳答案
0 
在线会员 发表于 2016-2-11 16:51:07 | 显示全部楼层 |阅读模式
3驿站币
本帖最后由 龚强97 于 2016-2-12 15:57 编辑

#include<stdio.h>

int *max(int *m,int *n)
{        if(*m>*n)
                return m;
        else return n;
       
}


int main()
{        int p,a,b;
        printf("Enter two digits: ");
        scanf("%d%d",&a,&b);
        p=*max(&a,&b);
        printf ("\n%d",p);
        return 0;
       
}

这个程序我们称它为程序一,作用是显示你输入的两个数中的较大的的数。现在把主函数里的int p,a,b; p=*max(&a,&b);分别改为int *p,a,b; p=max(&a,&b)并称之为程序二,  运行后效果是显示你输入的两个数中较大的那个数的地址。那么问题来了 子函数到底叫什么,是叫max 还是*max? 我的理解是 子函数的名称是max,在程序一中 假设输入的a>b,那么max函数返回了m,然后p=*max(&a,&b); 即p=*m 显示了较大的那个数。在程序二中 int *p,a,b; p=max(&a,&b);max返回m,p=m,显示较大数的地址。那么问题来了,子函数的名称为max的话, 把int *max(int *m,int *n)修改为int max(int *m,int *n)其余不变为什么提示编译不成功?假如子函数名称为 *max 那么程序二中的p=max(&a,&b)又是什么鬼啊。。。。小白今天才接触到指针,被书上的例子绕晕了。。。。。。。





上一篇:可以将几乎是任意大小的文件压缩至近乎任意的大小的压缩技术价值几何?
下一篇:VC怎么对Excel文件进行读写操作
55_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2016-2-12 16:11:23 | 显示全部楼层
原来int *max(int *m,int *n)里的* 是修饰子函数返回值的类型的 所以子函数是max不是*max,int *a()其实是指a函数将会返回一个int型指针,懂了。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-27 02:55

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表