#includeh>
void f(char* p);
int main(){
char st[20];
scanf("%s",st);
f(st);
printf("%s",st);
}
void f(char* p){
char* p1=p;
char* p2=p;
int count=0;
while((*p1)!='\0'){
p1++;
count++;
}
int i,j;
for(i=0;i<count;i++){
for(j=0;j<count-1-i;j++){
*p2=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=*p2;
}
}
}
#includeh>
void f(char* p);
int main(){
char st[20];
scanf("%s",st);
f(st);
printf("%s",st);
}
void f(char* p){
char* p1=p;
char var; //char* p2=p;
int count=0;
while((*p1)!='\0'){
p1++;
count++;
}
int i,j;
for(i=0;i<count;i++){
for(j=0;j<count-1-i;j++){
var=*(p+j); //*p2=*(p+j)
*(p+j)=*(p+j+1);
*(p+j+1)=var;//*(p+j+1)=*p2
}
}
}
为什么用指针来存储无法实现呢?
要想逆序,你需要两个指针从两头交换,冒泡是在干什么
此外,p2作为一个安全的地方用来存数据,它的内存必须是块独立内存,不能是本身就在数组里啊
你用数组里的一个地方存数据,那本来存在这里的数据不丢了吗