黑马程序员技术交流社区
标题:
求指教哪里错
[打印本页]
作者:
dawn.dai
时间:
2014-4-26 00:12
标题:
求指教哪里错
本帖最后由 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;
}
作者:
周宇华
时间:
2014-4-26 01:15
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;
}
复制代码
作者:
gmadong@163.com
时间:
2014-4-26 08:25
本帖最后由 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:08
本帖最后由 stevenzhao1977 于 2014-4-26 14:21 编辑
指针指向变量的地址,则*p 可以赋值;
如果*p 指向常量的地址,如 char *p =”hello world "==> *p 不能赋值;
int *p=1 ===> xcode 可以编译,但不能运行,
因为 字符串常量有专门的内存地址 存放,p可以指向那里
但是 int 1 没有专门的内存地址存放,p 没有地方可以指向
作者:
dawn.dai
时间:
2014-4-26 15:14
谢谢各位
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2