#include<stdio.h>
void swap(char* head,char* tail);
int main(int argc, const char *argv[])
{
char buff[]="love china";//answer:china love I
char* head=buff;
char* tail=buff;
printf("实参(1)%p\t%p\n",head,tail);
while(*tail!='\0')
tail++;
swap(buff,tail-1);
printf("实参(2)%p\t%p\n",head,tail);
putchar(10);
while(*head!='\0')
{
while(*head==32)
{
head++;
}
tail=head;
while(*tail!=32&&*tail!='\0')
{
tail++;
}
printf("实参(3)%p\t%p\n",head,tail);
swap(head,tail-1);
printf("实参(3)%p\t%p\n",head,tail);
head=tail;
putchar(10);
}
puts(buff);
return 0;
}
void swap(char* head,char* tail)
{
while(head<tail)
{
*head^=*tail;
*tail^=*head;
*head++^=*tail--;
}
printf("形参(0)%p\t%p\n",head,tail);
}
指针当传参无论怎么改变地址都不会影响其实参的地址
最新推荐文章于 2022-12-26 00:28:01 发布