【发布时间】:2012-08-20 16:08:32
【问题描述】:
在这个程序中我交换了前两个名字
#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 *) 时它没有交换地址,为什么?为什么我必须使用指向指针的指针?
【问题讨论】:
-
字符串在 C 中是
char*的事实可能会增加混淆。尝试先用一个整数数组来实现它,然后是一个指向整数的指针数组,然后是一个字符串数组。
标签: c string function pointers swap