java - 为什么输出的结果为4321?

 真实的姜伯约_832 发布于 2022-10-28 15:50
Char  c[]={'1','2','3','4'}
for(int i=0;i

为什输出的结果为4321?

4 个回答
  • 本质上就是一个交换操作
    示例
    a = 1 b = 2 => c = b => b = a a = c
    如果可以这样:
    a =1 ,b = 2;
    a,b:=b,a;
    看起来更简单

    2022-10-29 21:46 回答
  • 当i = 0;
    char d=c[i];
    将c[0]的值赋值给d, 也就是1;
    此时c数组依旧是[1, 2, 3,4],但d有了初始值,为1;
    【操作的含义是将交换的A方放在空闲位置】
    c[i]=c[c.length-(i+1)];
    将c[3]的值赋予c[0];
    此时c数组是[4,2,3,4], d值为1;
    【操作的含义是将交换的B方的值给A方】
    c[c.length-(i+1)]=d;
    将d的值,也就是一开始c[0]的值1, 赋值给c[3];
    到目前为止,c数组的值为[4,2,3,1],d值为1;
    【操作的含义是将空闲位置的数,即最初的A的值, 给B;最终实现A与B值的交换】

    当i为1时,
    char d=c[i];
    d为c[1], 也就是2;
    此时c数组为[4,2,3,1], d值为2;
    c[i]=c[c.length-(i+1)];
    将c[2]的值赋予c[1];
    此时c数组为[4,3,3,1],d值为2;
    c[c.length-(i+1)]=d;
    将d的值,也就是一开始c[1]的值2, 赋值给c[2];
    此时c数组为[4,3,2,1],d值为2;

    结束第一个for循环;

    2022-10-29 21:47 回答
  • 为什么不是?'1'和'4'交换,'2'和'3'交换。

    2022-10-29 21:51 回答
  • 循环两次,第一次1和4交换,第二次2和3交换

    2022-10-29 21:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有