| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 386 人关注过本帖
标题:高手们帮我看看着两个程序是否一样
只看楼主 加入收藏
wyc1023
Rank: 1
等 级:新手上路
帖 子:9
专家分:6
注 册:2012-3-16
收藏
 问题点数:0 回复次数:7 
高手们帮我看看着两个程序是否一样
我是要通过键盘给a[10]数组赋值

方法一:
#include<stdio.h>
main()
{
int a[10];
int i;

for(i=0;i<10;i++)
{scanf("%d",&a[i]);

printf("a[%d]=%d\n",i,a[i]);}
   
}

方法二:

#include<stdio.h>
main()
{
int a[10];
int i,*p;
p=a
for(i=0;i<10;i++)
scanf("%d",p++);
for(i=0;i<10;i++)
printf("a[%d]=%d\n",i,*p);
   

}



搜索更多相关主题的帖子: 键盘 
2012-04-09 23:13
姚杰
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:169
专家分:477
注 册:2010-6-1
收藏
得分:0 
不一样,P接受的是a[i]的地址,既你输入的是a[i]的地址。好好看看指针

持之以恒,别留遗憾,加油
2012-04-10 09:31
kevin0518
Rank: 1
等 级:新手上路
帖 子:10
专家分:6
注 册:2011-8-23
收藏
得分:0 
第二个程序是有问题的,指针在第一个for中用完之后没有初始化而且地址也没有变化,所以你输出的应该是10个相同的值;一个用数组地址,一个把地址用指针表示而已~
2012-04-10 09:56
天一神话
Rank: 2
等 级:论坛游民
帖 子:23
专家分:33
注 册:2012-3-29
收藏
得分:0 
第一个for循环结束后应该初始化地址,在输出数组
for(i=0;i<10;i++,p++)
printf("a[%d]=%d\n",i,*p);
或者是
for(i=0;i<10;i++)
printf("a[%d]=%d\n",i,*p++);
   

   

2012-04-10 10:04
C_596322153
Rank: 6Rank: 6
来 自:徽州
等 级:侠之大者
帖 子:182
专家分:466
注 册:2012-1-10
收藏
得分:0 
#include<stdio.h>
main()
{
  int a[10];
  int i,*p;
  p = a;
  for(i=0;i<10;i++)
    {
      scanf("%d",p++);
    }
  p = a;
  for(i=0;i<10;i++)
    {
       printf("a[%d]=%d\n",i,*p++);
    }
}
第二个改下
2012-04-10 12:49
wyc1023
Rank: 1
等 级:新手上路
帖 子:9
专家分:6
注 册:2012-3-16
收藏
得分:0 
回复 5楼 C_596322153
各位大侠说的第二个的错误我理解了,
我想在问哈,那么方法一到底有没有给a[10]这个数组赋起值,还是只给了这个数组的第一个赋的值
2012-04-10 20:18
wyc1023
Rank: 1
等 级:新手上路
帖 子:9
专家分:6
注 册:2012-3-16
收藏
得分:0 
回复 3楼 kevin0518
各位大侠说的第二个的错误我理解了,
我想在问哈,那么方法一到底有没有给a[10]这个数组赋起值,还是只给了这个数组的第一个赋的值
2012-04-10 20:20
sunqing
Rank: 2
来 自:重庆市
等 级:论坛游民
帖 子:28
专家分:55
注 册:2012-3-8
收藏
得分:0 
不一样,第二个输出的全是第十个值,执行完第一个for循环后p指向a[9],将第二个for改为for(i=0,p=a;i<10;i++,p++)
2012-04-10 20:26
快速回复:高手们帮我看看着两个程序是否一样
数据加载中...
 
   



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

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