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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

恣意

初级黑马

  • 黑马币:28

  • 帖子:15

  • 精华:0

© 恣意 初级黑马   /  2014-4-27 11:31  /  951 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 恣意 于 2014-4-29 12:11 编辑

int a[10];
for(i=0;i<10;i++)
scanf("%d",&a);此处&a可以这样写么,求解释

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 胡铭 于 2014-4-27 17:01 编辑

不可以,a本身就是a[0]的地址,可以考虑scanf("%d",a+i);

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

回复 使用道具 举报
不行
同楼上
数组名称就是数组的首地址。
如果你想表明数组地址的话,一共有两种方法 1就是 a ,2是 &a[0]
针对你上面那个问题,可以考虑写成这样
  1. int a[10];
  2. for( i = 0 ; i < 10 ;i++)
  3. scanf("%d" , a[i] ) ;
复制代码

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

回复 使用道具 举报
不能这么写,你不是对单个的变量赋值,而是赋值飞一个数组,那么数组的元素就不只一个,你那样写就表示将值赋值给了数组元素的首地址,后面的数组元素就不能被得到赋值,再说,你不是定义了变量i 吗?请问你定义他得目的几何?
回复 使用道具 举报
2014571245 发表于 2014-4-27 16:54
不能这么写,你不是对单个的变量赋值,而是赋值飞一个数组,那么数组的元素就不只一个,你那样写就表示将值 ...

我认为不能那样写的,只是身边有准研究生说可以,所以问一句。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马