谢谢,解决了。
本帖最后由 一剑飘零 于 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:04 编辑
ab的参数里加个int*, 通过这个传出
或者你也可以传出一个数组,在main里进一步处理 p的地址不能用函数里的变量地址,至少是主函数里的地址才行,或者全局变量 三滑稽甲苯 发表于 2022-10-17 09:03
ab的参数里加个int*, 通过这个传出
或者你也可以传出一个数组,在main里进一步处理
谢谢。弄好了。 三滑稽甲苯 发表于 2022-10-17 09:03
ab的参数里加个int*, 通过这个传出
或者你也可以传出一个数组,在main里进一步处理
这要如何加?能否改写一下看一下。 doctrinist 发表于 2022-10-17 09:04
p的地址不能用函数里的变量地址,至少是主函数里的地址才行,或者全局变量
确实。把指针设全局就好了。主函数好像也没用,只有全局可以。感谢! 感谢分享、学习贴也是宣传贴我也要学学 {:1_893:} 不用全局变量也可以的
#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]