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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

假如array是一个数组,length是数组的长度:
for(int i = 0;i < length;i++)
{
    array[i]=array[i+1];
}
这种把后一个元素赋值给前一个元素可以吗?

7 个回复

倒序浏览
没理解,但是角标越界了吧?{:3_46:}
回复 使用道具 举报
可不可以,你运行一下,不就行了吗?不要什么事都首先想到的是问,应该想到先自己动手解决,自己思考。你这样写,会报错。
回复 使用道具 举报
诺诺 发表于 2014-12-21 23:35
没理解,但是角标越界了吧?

:L,多谢提醒,竟然没发现,汗哪
回复 使用道具 举报
王溢君 发表于 2014-12-21 23:44
可不可以,你运行一下,不就行了吗?不要什么事都首先想到的是问,应该想到先自己动手解决,自己思考。你这 ...

哎,目前还没有准备笔记本
回复 使用道具 举报
可以是可以,不过array[0]值会丢失,最后i = length - 1时array[i + 1] == array[length]会越界
回复 使用道具 举报
不但角标会越界,而且这个方法根本就是错的,就算给你假如角标不会越界又有什么用,你的思路就是 a=b ,结果a的值变了,b的值呢?这个程序需要中间变量来实现,代码:#include <stdio.h>
void huhuan (int arrye[],int count);

int main (void)
{
        int ages[] = {2,4,6,8,10};
     huhuan (ages,5);
         for (int j = 0; j<sizeof(ages)/ sizeof(int); j++)
         {
                 printf ("ages[%d]=%d\n",j,ages[j]);
         }

        return 0;
}

void huhuan (int arrye[],int count)
{
   int i,n;
   
   for (i=0; i<count-1; i++)
   {
       n = arrye[i];
       arrye[i]=arrye[i+1];
           arrye[i+1]=n;

   }

}
回复 使用道具 举报
xiezhongmin 发表于 2014-12-24 02:18
不但角标会越界,而且这个方法根本就是错的,就算给你假如角标不会越界又有什么用,你的思路就是 a=b ,结果 ...

这位同学,非常感谢你的指正。我想明白了。:)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马