要求逆序字符串,为啥我这样的代码不行?

要求逆序字符串,为啥我这样写的代码会报错?用两个指针来定位字符串的头和尾,然后两边两两交换

img

img

left是个int指针,而arr是个char
left=arr是要干啥,这不是典型的野指针吗
你现在的问题是:
char和char*分不清
int和char分不清

逆序函数这么写:

void reverse_string(char* arr, int sz)
{
    char* left, * right;
    left = arr;
    right = arr + sz - 1;
    while (left < right)
    {
        char tmp = *left;
        *left = *right;
        *right = tmp;
        left++;
        right--;
    }
}

img