当前位置: 代码迷 >> C语言 >> 指针赋值问题?
  详细解决方案

指针赋值问题?

热度:373   发布时间:2008-06-19 17:46:04.0
指针赋值问题?
#include"stdio.h"
void main()
{
  int a[10],i,*p,*sum,m;
  float *ave,n;
  m=0;n=0;
  sum=&m;
  ave=&n;
  p=&a[0];
  for(i=0;i<10;i++)
    {
    *(p+i)=i;
    *sum=*sum+*(p+i);
    }
    *ave=*sum/10;
  printf("%d %f",*sum,*ave);
  putchar('\n');
  for(i=0;i<10;i++)
  printf("a[%d]=%d\n",i,*(p+i));
}――――――――――――――――――――――――――――――――――――――
请问:为什么 *(p+i)=i; 可以直接用 而 sum=&m,ave=&n;不可以改成 *sum=m,*ave=n;

改成那样,可以得出结果,但是有 8个 warning

[[it] 本帖最后由 crabeam 于 2008-6-19 17:48 编辑 [/it]]
搜索更多相关的解决方案: 赋值  指针  

----------------解决方案--------------------------------------------------------
是不是太简单 没人愿意回答
----------------解决方案--------------------------------------------------------
回去好好复习下书....
----------------解决方案--------------------------------------------------------
同意3楼



[flash=400,300]http://yzfy.byethost17.com/flash.php[/flash][color=white]
----------------解决方案--------------------------------------------------------
同意4楼
----------------解决方案--------------------------------------------------------
指针使用前就得初始化,不然指向的地址是未知的。
1;sum=&m,ave=&n 是隐式初始化,使指针指向某个地址,是正确使用;
2;而*sum=m,*ave=n是使用指针,是给指针指向的内容赋值,在你这段代码里,sum和ave是初次使用,之前需要初始化。
当然两种表达结果是一样的,但意义不同,严格讲后面是错误;
如果你在语句*sum=m;*ave=n;之前加上sum=NULL;ave=NULL;必然就不会有警告了。
----------------解决方案--------------------------------------------------------
必然不会有警告。。。不过。。。哎。。。运行一下看看吧


[flash=400,300]http://yzfy.byethost17.com/flash.php[/flash][color=white]
----------------解决方案--------------------------------------------------------
谢谢,说得很好

理解了。  嗯,“之前加上sum=NULL;ave=NULL;” 如6楼所说 没了警告。加上后,不能输出 求和 平均值还是正确.

[[it] 本帖最后由 crabeam 于 2008-6-19 19:00 编辑 [/it]]
----------------解决方案--------------------------------------------------------
楼主你加上以后运行过了吗?


[flash=400,300]http://yzfy.byethost17.com/flash.php[/flash][color=white]
----------------解决方案--------------------------------------------------------
回复 9# 爱喝牛奶的猫咪 的帖子
结果不正确....

[[it] 本帖最后由 crabeam 于 2008-6-19 18:56 编辑 [/it]]
----------------解决方案--------------------------------------------------------
  相关解决方案