黑马程序员技术交流社区

标题: 数组 [打印本页]

作者: 耳东君    时间: 2014-3-11 19:51
标题: 数组
# 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;
}
为什么没有输出正确的数组元素?
作者: 耳东君    时间: 2014-3-11 19:56
大意了是(p+i)。。。
作者: .......    时间: 2014-3-11 20:19
我去,这是C的题吧,指针都跑出来了
作者: ok-Prince    时间: 2014-3-11 20:19
这不是传说中的C语言么,这个版块是Java的,懂C语言的应该不多。。。
作者: 天凌蓝    时间: 2014-3-11 20:32
  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. }
复制代码

作者: 耳东君    时间: 2014-3-11 20:42
ok-Prince 发表于 2014-3-11 20:19
这不是传说中的C语言么,这个版块是Java的,懂C语言的应该不多。。。

冒失先学下c再学java  很多东西更好理解些  我0基础的也在努力自学向java前进
作者: 耳东君    时间: 2014-3-11 20:43
....... 发表于 2014-3-11 20:19
我去,这是C的题吧,指针都跑出来了

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

哈,C语言倒是以前我们的一门考试课,可惜现在已经被我忘到爪哇国去了。。。我现在也算是0基础的刚学java不久,一起努力哈:handshake
作者: 耳东君    时间: 2014-3-11 20:51
天凌蓝 发表于 2014-3-11 20:32

是不是p【i】的话就要把前面的*去掉。
作者: 耳东君    时间: 2014-3-11 21:01
ok-Prince 发表于 2014-3-11 20:47
哈,C语言倒是以前我们的一门考试课,可惜现在已经被我忘到爪哇国去了。。。我现在也算是0基础的刚学java ...

一起加油:victory:
作者: 天凌蓝    时间: 2014-3-11 21:30
耳东君 发表于 2014-3-11 20:51
是不是p【i】的话就要把前面的*去掉。

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

呵呵 技多不压身 多多加油!
作者: yunzhongzhuhuo    时间: 2014-3-11 22:53
  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, 下载次数: 99)

QQ截图20140311225300.png

作者: ok-Prince    时间: 2014-3-12 09:48
梦里花-静 发表于 2014-3-11 21:47
呵呵 技多不压身 多多加油!

嘿嘿。。:handshake




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2