关于C++指针的问题
#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include<cassert>using namespace std;char * reversal(char *str,int i,int j){ char temp; while(i<j) { temp=str[i]; str[i]=str[j]; str[j]=temp; i++; j--; } return str;}char * rightshift(char *str,int n){ int len=strlen(str); n=(n%len+len)%len; reversal(str,0,len-n-1); reversal(str,len-n,len-1); reversal(str,0,len-1); return str;}int main(){ char *str="abvdefghi"; printf("%s\n",rightshift(str,-2)); return 0;}#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include<cassert>using namespace std;char * reversal(char *str,int i,int j){ char temp; while(i<j) { temp=str[i]; str[i]=str[j]; str[j]=temp; i++; j--; } return str;}char * rightshift(char *str,int n){ int len=strlen(str); n=(n%len+len)%len; reversal(str,0,len-n-1); reversal(str,len-n,len-1); reversal(str,0,len-1); return str;}int main(){ char str[]="abvdefghi"; printf("%s\n",rightshift(str,-2)); return 0;}