C语言程序结果 如图

如题所述

字符串逆置 结果为GFEDCBA追问

可是交换之前就已经移动了啊。a保存了q1指向的值后,q1就指向第二个了啊

追答

追问

我就得出的是这个啊

但是所有人都说是倒叙

追答

不是到序,就是你说的那样,所有人都没认真看程序哦

追问

谢谢你,郁闷一下午,我以为我理解错了

追答

没有呢,相信自己,不行就用电脑验证一下

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-22
答案是:GFEDCBA
这个就是通过指针去改变字符数组的每一个地址,从而实现字符串的反转功能。追问

可是交换之前就已经移动了啊。a保存了q1指向的值后,q1就指向第二个了啊

追答

楼上的答案是对的,我粗心了,没仔细看程序。
第一次运行a = *q1++时,a = A;q1指向B的地址
运行*q1 = *q2--时,*q1 = G,q2指向F的地址
运行*q2 = a 时,*q2 = A,即F的值变成A
第一次运行完成后,字符串变成AGCDEAG
第二次运行完成后,字符串变成AGADGAG
第三次运行完成后,字符串变成AGAAGAG

第2个回答  2015-12-22
GBCDEFA,就是把第一个和最后一个字符交换了。追问

可是交换之前就已经移动了啊。a保存了q1指向的值后,q1就指向第二个了啊

追答

*p1又被又被*p2的值覆盖了,不考虑那个。

只是把q1指向a,q2指向a+6,然后交换了他们的值。