| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 348 人关注过本帖
标题:请大大们解释一下这个案例
只看楼主 加入收藏
carmeloyin
Rank: 3Rank: 3
来 自:西安
等 级:论坛游侠
帖 子:161
专家分:157
注 册:2008-12-2
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:4 
请大大们解释一下这个案例
1个关于指针与数组的案例
#define N 10
main()
{
 int a[N],i,*p;
 p=a;   /*建立p与a之间的指向关系*/
 printf("输入数组数据");
 for(i=0 ; i<N ;i++)
   scanf("%d",p+i);  /*指针法表示元素地址*/
 printf("数组为:")
 for(i=0 ; i<N ;i++)
    printf("%d",*(p+i)) /*指针法表示元素*/
}


关于以上案例
我不理解的是
scanf("%d",p+i); 这一句要求输入p+i 可是p+i不是表示地址吗?
怎么可以作为数据内容输入数组呢?

我比较糊涂
希望有人可以指点一下啊
   
搜索更多相关主题的帖子: 解释 
2010-07-13 12:38
rainbow1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:277
专家分:839
注 册:2010-5-19
收藏
得分:5 
数组a[0]表示该数组的第一个元素的地址,实际上对数组名的操作即是通过地址对数组元素进行操作,与用指针操作完全等价。很多书上也会说,数组的本质就是指针。都是在内存中开辟一块地址,通过地址索引对数据进行操作。
即:
   scanf("%d",p+i);
   scanf("%d",a[i]);
完全相同。
2010-07-13 12:47
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:15 
楼主你困了, 困得糊涂
p+i就是表示地址,
但是它并不作为数据输入数组,数组也没接受过它
一切都是楼主 捏造出来的.
scanf("%d",&....); &是取址符号, 当不知道地址的时候才用它(不是上面的那个它)
而p+i就是个地址
所以
scanf("%d",它(是上面上面的那个它))

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-07-13 13:18
carmeloyin
Rank: 3Rank: 3
来 自:西安
等 级:论坛游侠
帖 子:161
专家分:157
注 册:2008-12-2
收藏
得分:0 
对对
是我S B了
2楼说错了
应该是和 scanf("%d",&a[i]);一样

结帖
问了个S B问题
2010-07-13 22:18
快速回复:请大大们解释一下这个案例
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018904 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved