工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1239|回复: 2

请问程序哪里出错啦???

[复制链接]
发表于 2007-12-11 18:56 | 显示全部楼层 |阅读模式
#include<stdio.h>
int multi(int a,int b,int c)
{
return(c=a*b);
}
main()
{
int c;
multi(10,10,c);
printf("%d\n",c);
}

为什么输出结果不是100???
发表于 2007-12-11 19:15 | 显示全部楼层
建议去查一下 “传值” 与 “传址” 这两个概念
#include<stdio.h>
int multi(int a,int b){
    return a*b;
}
main(){
    int c;
    c=multi(10,10);
    printf("%d\n",c);
}

有return 了的话不用再传多一个参数了,显得多余
或者可以这样
#include<stdio.h>
void multi(int a,int b,int* result){
    *result = a*b;
}
main(){
    int c;
    multi(10,10,&c);
    printf("%d\n",c);
}


其实C语言只有传值,不过初学可以理解 传指针 这类为传址..

[ 本帖最后由 iptton 于 2007-12-11 19:17 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2007-12-11 20:46 | 显示全部楼层
谢谢 知道了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-5-14 19:18

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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