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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 耳东君 中级黑马   /  2014-3-11 19:51  /  1862 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

# include<stdio.h>

void f(int * p, int len)
{
  int i;

  for (i = 0;i < len;++i)
          printf("%d ",*(p+1));
      printf("\n");
}

int main(void)
{
        int a[5] = {1,2,3,4,5};
        int b[6] = {11,22,33,44,55,66};

        f(a,5);
        f(b,6);

  return 0;
}
为什么没有输出正确的数组元素?

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

13 个回复

倒序浏览
大意了是(p+i)。。。
回复 使用道具 举报
我去,这是C的题吧,指针都跑出来了
回复 使用道具 举报
这不是传说中的C语言么,这个版块是Java的,懂C语言的应该不多。。。
回复 使用道具 举报
  1. # include<stdio.h>

  2. void f(int * p, int len)
  3. {
  4.   int i;

  5.   for (i = 0;i < len;++i)
  6.           printf("%d ",*(p[i]));//*p是指针数组的引用地址
  7.       printf("\n");
  8. }

  9. int main(void)
  10. {
  11.         int a[5] = {1,2,3,4,5};
  12.         int b[6] = {11,22,33,44,55,66};

  13.         f(a,5);
  14.         f(b,6);

  15.   return 0;
  16. }
复制代码
回复 使用道具 举报
ok-Prince 发表于 2014-3-11 20:19
这不是传说中的C语言么,这个版块是Java的,懂C语言的应该不多。。。

冒失先学下c再学java  很多东西更好理解些  我0基础的也在努力自学向java前进
回复 使用道具 举报
....... 发表于 2014-3-11 20:19
我去,这是C的题吧,指针都跑出来了

0基础小白怕一下学java很多东西难理解就跑去学习下C 也是为了以后学习java服务哈
回复 使用道具 举报
耳东君 发表于 2014-3-11 20:42
冒失先学下c再学java  很多东西更好理解些  我0基础的也在努力自学向java前进 ...

哈,C语言倒是以前我们的一门考试课,可惜现在已经被我忘到爪哇国去了。。。我现在也算是0基础的刚学java不久,一起努力哈:handshake
回复 使用道具 举报

是不是p【i】的话就要把前面的*去掉。
回复 使用道具 举报
ok-Prince 发表于 2014-3-11 20:47
哈,C语言倒是以前我们的一门考试课,可惜现在已经被我忘到爪哇国去了。。。我现在也算是0基础的刚学java ...

一起加油:victory:
回复 使用道具 举报
耳东君 发表于 2014-3-11 20:51
是不是p【i】的话就要把前面的*去掉。

不是,你这里 printf("%d ",*(p+1));的*(p+1)打印的是指针数组的引用地址,而不是里面的值,它里面的值得遍历,printf("%d ",*(p));而 * 是表示你那数组是指针类型而已
回复 使用道具 举报
ok-Prince 发表于 2014-3-11 20:47
哈,C语言倒是以前我们的一门考试课,可惜现在已经被我忘到爪哇国去了。。。我现在也算是0基础的刚学java ...

呵呵 技多不压身 多多加油!
回复 使用道具 举报
  1. #include<stdio.h>


  2. void f(int * p, int len)
  3. {

  4.   int i;


  5.   for (i = 0;i < len;++i,p++)

  6.           printf("%d ",*p);//*p是指针数组的引用地址

  7.       printf("\n");

  8. }


  9. int main(void)
  10. {
  11.         
  12.         int a[5] = {1,2,3,4,5};
  13.         
  14.         int b[6] = {11,22,33,44,55,66};

  15.         
  16.         f(a,5);
  17.         
  18.         f(b,6);

  19.   
  20.         return 0;

  21. }
复制代码
附上结果截图:

QQ截图20140311225300.png (2.56 KB, 下载次数: 97)

QQ截图20140311225300.png
回复 使用道具 举报
梦里花-静 发表于 2014-3-11 21:47
呵呵 技多不压身 多多加油!

嘿嘿。。:handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马