Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我得到了一个意想不到的输出_C - Fatal编程技术网

C 我得到了一个意想不到的输出

C 我得到了一个意想不到的输出,c,C,在我的书中,给出了这个代码。他们说输出是223465 请解释一下这是否正确?如果不是,那么正确的o/p是什么 #include <stdio.h> #include <string.h> main() { int c[]={2,8,3,4,4,6,7,5}; int j,*p=c,*q=c; for(j=0;j<5;j++){ printf(" %d",*c); ++q; } for(j=0;j<5

在我的书中,给出了这个代码。他们说输出是
223465
请解释一下这是否正确?如果不是,那么正确的o/p是什么

#include <stdio.h>
#include <string.h>

main()
{
   int c[]={2,8,3,4,4,6,7,5};
   int j,*p=c,*q=c;
   for(j=0;j<5;j++){
       printf(" %d",*c);
       ++q;

   }
   for(j=0;j<5;j++){
       printf(" %d",*p);
       ++p;
   }
}
#包括
#包括
main()
{
int c[]={2,8,3,4,4,6,7,5};
int j,*p=c,*q=c;

对于(j=0;j在第一个for循环中,您打印的是
*c
,而不是
*q

printf(" %d",*c);  // outputs `2 2 2 2 2` as first element, five times
应该是:

printf(" %d",*q);
正如我所注意到的,您增加了
q

由于
*c
c
衰减为该表达式中第一个元素的地址,因此第一个循环中的输出为
2

编辑

根据您的代码输出,应按照@ChronoTrigge的建议(我注意到后者):

如上所述,第一个循环输出五次
2

第二个循环将输出数组
a[]
中的前五个元素,因此输出应该是:
28344


完整输出:
2 2 2 2 8 3 4 4

输出应为2 2 2 2 8 3 4 4 4我强烈建议您使用调试器查找运行时“错误”这种类型的。通过这种方式,你不仅可以在大多数情况下找到bug,还可以学到很多关于编程本身的知识。如果你想学习,请自己调试……这将使你能够可视化代码执行。