Gho*_*ing 4 c string swap pointers function
在这个程序中,我已经交换了前两个名字
#include<stdio.h>
void swap(char **,char **);
main()
{
char *name[4]={"amol", "robin", "shanu" };
swap(&name[0],&name[2]);
printf("%s %s",name[0],name[2]);
}
void swap(char **x,char **y)
{
char *temp;
temp=*x;
*x=*y;
*y=temp;
}
Run Code Online (Sandbox Code Playgroud)
这个程序运行完美,但是当我使用function swap(char *,char *)
它时,它不会交换地址为什么?为什么我必须使用指针指针?
我假设你理解交换整数你会有类似的功能 swap(int *, int *)
同样,当你想要交换字符串时char *
.你需要像这样的功能swap(char **, char **)
.
在这种情况下,你可以使用它们的指针并交换它们的内容(否则一旦函数返回就不会交换值).对于整数内容,指针是int *
并且在字符串内容的情况下是char *
指向它的指针char **
.