鱼C论坛

 找回密码
 立即注册
查看: 990|回复: 2

[已解决]会吗

[复制链接]
发表于 2021-1-4 20:06:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
# include <stdio.h>
int f(int * p, int * q);

void main(int)
{
        int a = 3;
        int b = 5;

        f(&a, &b);
        printf("a = %d, b = %d\n", a , b);

        return ;

}

int f(int * p, int * q)
{
        int t;
        t = *p;
        *p = *q;
        *q = t;
}
D:\C语言代码练习存放处\经典指针程序—两数互换.cpp(22) : error C4716: 'f' : must return a value



最佳答案
2021-1-5 09:59:26
本帖最后由 sunrise085 于 2021-1-5 10:00 编辑

基础不够扎实啊!
int f(int * p, int * q) 函数这样声明,意思是有两个参数,两个参数都是int类型的指针,函数有返回值,返回值类型是int类型。
因此函数定义中必须有return语句,而且return语句返回的值需要是int类型
看你的这个程序,很明显不需要返回值,那么久可以把函数f声明为无返回值函数 void f(int * p, int * q)
同时,在下方定义的时候也写成无返回值。
//函数声明
void f(int * p, int * q);
//函数定义
void f(int * p, int * q)
{
        int t;
        t = *p;
        *p = *q;
        *q = t;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-5 09:59:26 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sunrise085 于 2021-1-5 10:00 编辑

基础不够扎实啊!
int f(int * p, int * q) 函数这样声明,意思是有两个参数,两个参数都是int类型的指针,函数有返回值,返回值类型是int类型。
因此函数定义中必须有return语句,而且return语句返回的值需要是int类型
看你的这个程序,很明显不需要返回值,那么久可以把函数f声明为无返回值函数 void f(int * p, int * q)
同时,在下方定义的时候也写成无返回值。
//函数声明
void f(int * p, int * q);
//函数定义
void f(int * p, int * q)
{
        int t;
        t = *p;
        *p = *q;
        *q = t;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-14 20:49:35 | 显示全部楼层
为啥不需要返回值啊?f函数不是要给返回值到main函数吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 03:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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