关于字符串和字符串数组的问题

img

img

img

img


这是leetcode上的一道关于字符串转换的题目,但是有一点问题是,如果是字符串为什么定义的high=sSize-1
而不是high=sSize-2呢,因为字符串数组的最后一位应该是空也就是s[sSize]不存在而s[sSize-1]存的应该是‘/0’啊
不知道为什么答案是high=sSize-1

首先这里的参数sSize应该是字符串的长度,不包括'\0'
hight = sSize-1;这个是最后一位元素的下标,即'0';
所以说'\0'是在下标为sSize的位置上

数组长度=sSize,那么数组按下标取值范围就是 0 ~ sSize-1;low是从前往后的下标,high是从后往前的下标,第一个元素(0)与最后一个元素(sSize-1)交换位置,第二个(1)与倒数第二个(sSize-2)交换位置;如果high=sSize-2,那么就是第一个元素与倒数第二个元素交换了,这样最后一个元素是没变的