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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 jx836202365 于 2015-9-6 23:33 编辑

大家帮我看看代码,我脑子糊涂了.不想浪费时间,大家帮我看看,旁观者清啊
#include<stdio.h>


void caculate(int a,int b,int *jia,int *jian,int *cheng,float *chu){
   
    *jia=a+b;
    *jian=a-b;
    *cheng=a*b;
    *chu=(float)a/b;
   
   
}


int main(){
   
    int a=34,b=2;
    int *jia;
    int *jian;
    int *cheng;
   
    float *chu;
   
    caculate(a,b,jia,jian,cheng,chu);
   
    printf("%d\n",*jia);
   
    return 0;
}

24 个回复

正序浏览
本帖最后由 aidan 于 2015-9-7 17:39 编辑

再定义4个变量 4个指针分别指向那4个变量
然后就没问题了
或者学他们大神的。。哈哈
回复 使用道具 举报
  1. #include<stdio.h>


  2. void caculate(int a,int b,int *jia,int *jian,int *cheng,float *chu){
  3.    
  4.     *jia=a+b;
  5.     *jian=a-b;
  6.     *cheng=a*b;
  7.     *chu=(float)a/b;
  8.    
  9.    
  10. }


  11. int main(){
  12.    
  13.     int a=34;
  14.     int b=2;
  15.     int jia;
  16.     int jian;
  17.     int cheng;
  18.    
  19.     float chu;
  20.    
  21.     caculate(34,2,&jia,&jian,&cheng,&chu);
  22.    
  23.     printf("%d\n",jia);
  24.    
  25.     return 0;
复制代码
回复 使用道具 举报

回帖奖励 +1

表示学习了
回复 使用道具 举报
定义以后最好初始化一下,不然就成野指针了,可以赋值NULL
回复 使用道具 举报
本帖最后由 coding_wang 于 2015-9-7 01:24 编辑


如图所示~~~
你定义的指针都是空指针  那么它指向的地址是无人区~~~你让后面的a+b,a-b什么的怎么住进去~~~
有数值  但是没有分配存储空间~~~  回答完毕~~~至于怎么改~~smilejoke 是正解~!
回复 使用道具 举报
smilejoke 发表于 2015-9-6 23:43
int *jia;野指针吧。。。。你直接定义int jia;就好了 传值传入&jia

大神正解~!
回复 使用道具 举报
看不懂,求中奖而来
回复 使用道具 举报
指针太多,眼花。我理解的是野指针。
调用函数的时候干嘛不直接传地址,&jia,&jian,&cheng,&chu.
回复 使用道具 举报
感觉是指针的问题吧,但是技术没那么高,解决不了。
回复 使用道具 举报
好像是野指针!
回复 使用道具 举报
下次记得报错也要贴出来啊。。。
回复 使用道具 举报

回帖奖励 +1

我有这心 但是真心看不懂.哥们 见谅.
回复 使用道具 举报
一堆指针都没用,就编译出来了……
回复 使用道具 举报
定义出问题了啊
回复 使用道具 举报
heimatai6 来自手机 中级黑马 2015-9-7 00:04:57
10#
表示看不懂
回复 使用道具 举报
都是大神,表示看花眼了
回复 使用道具 举报
一堆空指针。。。
回复 使用道具 举报
兄弟这么多指针,看着都通疼死了!
回复 使用道具 举报

回帖奖励 +1

定义的不对啊 兄弟
回复 使用道具 举报
int *jia这些既不是赋值,也不是比较,肯定报错啊
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马