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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dawn.dai 中级黑马   /  2014-4-26 00:12  /  1532 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 dawn.dai 于 2014-4-26 15:13 编辑

int sumAndMinus(int a, int b, int *m){
   
    *m =a-b;
    return a+b;
   
}

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        int *minus = 0;
        int sum =sumAndMinus(10, 5, minus);
        
        printf("minus =%d,sum =%d\n",*minus,sum);
    }
    return 0;
}

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

5 个回复

倒序浏览
  1. int sumAndMinus(int a, int b, int *m){
  2.    
  3.     *m =a-b;
  4.     return a+b;
  5.    
  6. }

  7. int main(int argc, const char * argv[])
  8. {
  9.    
  10.     @autoreleasepool {
  11.         int minus = 0; // 空地址无法使用,改成定义变量,再取地址传进函数
  12.         int sum =sumAndMinus(10, 5, &minus);
  13.         
  14.         printf("minus =%d,sum =%d\n",minus,sum);
  15.     }
  16.     return 0;
  17. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 gmadong@163.com 于 2014-4-26 08:29 编辑

//你的写法

int sumAndMinus(int a, int b, int *m){
   
    *m =a-b;
    return a+b;
   
}

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        int *minus = 0;//这是定义一个指向int的指针所以 应该int minus =0;
        int sum =sumAndMinus(10, 5, minus);//要在另一个函数中改变一个数的值应该传指针过去int sum =sumAndMinus(10, 5, &minus);
        
        printf("minus =%d,sum =%d\n",minus,sum);
    }
    return 0;
}




//正确的写法
int sumAndMinus(int a, int b, int *m){
   
    *m =a-b;
    return a+b;
   
}

int main(int argc, const char * argv[])
{
   
    @autoreleasepool {
        int minus = 0;
        int sum =sumAndMinus(10, 5, &minus);
        
        printf("minus =%d,sum =%d\n",minus,sum);
    }
    return 0;
}
回复 使用道具 举报
本帖最后由 stevenzhao1977 于 2014-4-26 14:21 编辑

指针指向变量的地址,则*p 可以赋值;
如果*p 指向常量的地址,如  char *p =”hello world "==> *p 不能赋值;
int *p=1 ===> xcode 可以编译,但不能运行,
因为 字符串常量有专门的内存地址 存放,p可以指向那里
但是 int 1 没有专门的内存地址存放,p 没有地方可以指向
回复 使用道具 举报
谢谢各位
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马