一剑飘零 发表于 2022-10-17 08:59

谢谢,解决了。

本帖最后由 一剑飘零 于 2022-10-17 09:22 编辑

比如我有个函数,想让ab函数里的b值传到main函数里并打印,这个要如何实现?
int ab(int *p){   //想让b的指传到主函数里。根据我的思路这样好像是错误的。

int a,b;

scanf("%d,%d,&a,&b);

p=&b;

return a+b;

}



int main(){


int *aa=NULL;
ab(*aa);   

printf("%d,*aa); //我只想打印ab函数里的b的值,这个要怎么传值。改了好多次依旧不行,求指点;

}

又修改为这样就对了。:
int *aa=NULL;   在main前定义全局函数
int ab(int *p){
int a,b;
scanf("%d,%d,&a,&b);
aa=&b;
return a+b;
}

int main(){

ab();   
printf("%d,*aa);
return 0;}


三滑稽甲苯 发表于 2022-10-17 09:03

本帖最后由 三滑稽甲苯 于 2022-10-17 09:04 编辑

ab的参数里加个int*, 通过这个传出
或者你也可以传出一个数组,在main里进一步处理

doctrinist 发表于 2022-10-17 09:04

p的地址不能用函数里的变量地址,至少是主函数里的地址才行,或者全局变量

一剑飘零 发表于 2022-10-17 09:07

三滑稽甲苯 发表于 2022-10-17 09:03
ab的参数里加个int*, 通过这个传出
或者你也可以传出一个数组,在main里进一步处理

谢谢。弄好了。

一剑飘零 发表于 2022-10-17 09:09

三滑稽甲苯 发表于 2022-10-17 09:03
ab的参数里加个int*, 通过这个传出
或者你也可以传出一个数组,在main里进一步处理

这要如何加?能否改写一下看一下。

一剑飘零 发表于 2022-10-17 09:11

doctrinist 发表于 2022-10-17 09:04
p的地址不能用函数里的变量地址,至少是主函数里的地址才行,或者全局变量
确实。把指针设全局就好了。主函数好像也没用,只有全局可以。感谢!

swsjjdcs 发表于 2022-10-17 10:16

感谢分享、学习贴也是宣传贴我也要学学 {:1_893:}

seawaycao 发表于 2022-10-17 12:29

不用全局变量也可以的
#include <stdio.h>
int ab(int *p) {            //让b的值传到主函数里。
        int a =0 , b = 0;
        printf("请输入参数:");
        scanf_s("%d %d",&a,&b);   //两个"%d"之间只能用空格分割
        printf("您输入的是:a = %d,b = %d \n", a,b);
        *p = b;
        return a + b;
}
int main() {
        int aa = 0;
        ab(&aa);
        printf("输出结果:aa = %d",aa); //打印ab函数里的b的值
}
页: [1]
查看完整版本: 谢谢,解决了。