鱼C论坛

 找回密码
 立即注册
查看: 2977|回复: 5

一个指针的问题求解!

[复制链接]
发表于 2012-1-7 14:31:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>

void  main()
{
        int *p ,i,a[10];

                p = a ;

        for (i = 0 ; i < 10 ; i++)
        {

                scanf("%d",p++);//大大们问题是在这么!scanf函数不能用指针变量做参数?
        }

        printf("\n");

        for (i = 0 ; i < 10 ; i++,p++)

        {
                printf("%d\n",*p);
        }
}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-1-7 15:10:19 | 显示全部楼层
scanf后面那个参数是第二个要地址符 &的。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-1-7 15:41:08 | 显示全部楼层
本帖最后由 cmaomao 于 2012-1-7 15:41 编辑

二楼不要乱说哦,p就是指针变量,不用加&取地址
这个问题在谭浩强的书上有提到,建议你自己好好去看下
今天中午刚好看过
主要的问
  1. #include <stdio.h>

  2. void  main()
  3. {
  4.          int *p ,i,a[10];

  5.                 p = a ;

  6.         for (i = 0 ; i < 10 ; i++)
  7.          {

  8.                 scanf("%d",p++);//大大们问题是在这么!scanf函数不能用指针变量做参数?
  9.          }

  10.         printf("\n");

  11.                 p = a;

  12.         for (i = 0 ; i < 10 ; i++,p++)

  13.         {
  14.                  printf("%d\n",*p);
  15.          }
  16. }
复制代码

题是第一个for执行后p的值已经变成了a[9]的地址
第二个for就是从a【9】后开始执行的,所以出错
在第二个for前加一个
p = a;
就可以了
小甲鱼最新课程 -> https://ilovefishc.com
头像被屏蔽
发表于 2012-1-7 15:48:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-1-8 14:16:46 | 显示全部楼层
谢谢大家!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-1-9 14:17:30 | 显示全部楼层
cmaomao 发表于 2012-1-7 15:41
二楼不要乱说哦,p就是指针变量,不用加&取地址
这个问题在谭浩强的书上有提到,建议你自己好好去看下
...

你说的确实对的,是我记错了。 谭浩强书上好像有例题就这样的。谢谢你的指点啊,呵呵!
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-10 16:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表