A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#include <stdio.h>
void yunSuan(int *a,int *b,int *sum,int *sub,int *mul,int *div){
    *sum = *a + *b;
    *sub = *a - *b;
    *mul = (*a) * (*b);
    *div = *a / *b;
}

//int main(){
//    int a = 6;
//    int b = 3;
//    float c = 1;
//    int *sum = &a;
//    int *sub = &b;
//    int *mul = &a;
//    int *a1 = &a;
//    int *b1 = &a;
//    float *div = &c;
//    a1 = &a;
//    b1 = &b;
//    yunSuan(a1,b1,sum,sub,mul,div);
//    printf("a+b=%d,a-b=%d,a*b=%d,a/b=%.2f\n",*sum,*sub,*mul,*div);
//    return 0;
//}
int main(){
    int a = 6;
    int b = 3;
    int *a1,*b1,*sum,*sub,*div,*mul;
    a1 = &a;
    b1 = &b;
    yunSuan(a1,b1,sum,sub,mul,div);
    printf("a+b=%d,a-b=%d,a*b=%d,a/b=%d\n",*sum,*sub,*mul,*div);
    return 0;
}











5 个回复

倒序浏览
运行结果:
Segmentation fault: 11
下面的你可看看:
计算加减乘除结果:
#include<stdio.h>
int add(int a,int b,int *p1,int *p2,int *p3)
{
    *p1=a-b;
    *p2=a*b;
    *p3=a/b;
    return a+b;
}
int main()
{
    int a=1;
    int b=2;
    int c,d,e;
    int *p1=&c;
    int *p2=&d;
    int *p3=&e;
    int f=add(a,b,p1,p2,p3);
    printf("a+b=%d\na-b=%d\na*b=%d\na/b=%d\n",f,c,d,e);
    return 0;
}



结果:
a+b=3
a-b=-1
a*b=2
a/b=0
回复 使用道具 举报
void test(int a , int b) 此时的int a , int b  是值传递
等价于  int a = 10 ; int b = 20;   int c = a;  int d  = b;
结果c = 10 d = 20; 也就是说吧 a 和b 的值 10 和20  赋值给c 和d  
c  d 不管怎么修改  都不会 改变 a  b 原本的值

-----------------------
void test (int * c,int *d);-
int main(){
int a = 10; int  b = 20;
test(a , b); 这是地址传递,也就是说 a b  把自己家里的钥匙 给了c 和d  
c d 把他家搞成什么样 a b 的值就会变成什么样。
}
void test(int *c , int *d )
{
        *c = 100;//这里指针c 修改原本 a 的地址里的数据
        *d = 200;//指针d 修改b地址里的数据
        知道地址了就可以随意修改里面的数据
}

所以你不应该吧int *a , int *b 作为函数的参数传递。
你的目的 是计算a  b 值的 + - * /
而不是 a  b  地址的+ - * /
回复 使用道具 举报
你的*sum,*sub,*mul,*div并没有初始化,是野指针,直接拿来运算是很危险的。是不允许的。
回复 使用道具 举报
陆露 发表于 2015-11-10 11:13
void test(int a , int b) 此时的int a , int b  是值传递
等价于  int a = 10 ; int b = 20;   int c = a ...

大哥 是test(&a,&b)
回复 使用道具 举报
。。。     
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马