在这个程序中我交换了前两个名字
#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;
}
这个程序运行完美,但是当我使用function swap(char *,char *)
为什么它不交换地址?为什么我必须使用指针到指针?
我假设您了解要交换整数,您将具有类似的功能swap(int *, int *)
类似地,当你想交换字符串时char *
。你需要像这样的功能swap(char **, char **)
.
在这种情况下,您可以获取它们的指针并交换它们的内容(否则一旦函数返回,值将不会被交换)。对于整数内容,指针是int *
如果是字符串,内容是char *
指向它的指针是char **
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)