字符串交换适用于 char **,但不适用于 char *

2024-04-06

在这个程序中我交换了前两个名字

#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(使用前将#替换为@)

字符串交换适用于 char **,但不适用于 char * 的相关文章

随机推荐