#include<stdio.h> char *reverse_string(char *string) { char *ret = string; //保存数组的首地址 char *left = string;//指向数组的第一个字符 char *right; //指向数组的最后一个非'\0'字符 char temp; //临时变量,用于交换 while(*string != '\0') { string++; } right = string-1; //执行完while后,string指向'\0',string-1即指向数组的最后一个非'\0'字符 while(left < right)//当left=right时,说明交换完毕,第一个与最后一个,第二个与倒数第二个。。。。依次交换,完成翻转 { temp = *left; *left = *right; *right = temp; left++; right--; } return ret; } int main() { char str[] = "abcd"; // char *str = "abcd" 程序崩溃,常量字符串无法改变 printf("%s\n",reverse_string(str)); return 0; }
时间: 2024-10-12 22:46:47