在下面的代码示例的C指针节目交换,有人可以告诉我为什么str1_ptr
和str2_ptr
与在swap1()
功能的签名char **
类型,而不是char *
(例如的替代char **str1_ptr
char *str1_ptr
)宣布?字符串的指针使用
#include<stdio.h>
/* Swaps strings by swapping pointers */
void swap1(char **str1_ptr, char **str2_ptr) {
char *temp = *str1_ptr;
*str1_ptr = *str2_ptr;
*str2_ptr = temp;
}
int main() {
char *str1 = "geeks";
char *str2 = "forgeeks";
swap1(&str1, &str2);
printf("str1 is %s, str2 is %s", str1, str2);
getchar();
return 0;
}
swap1()
函数交换两个字符串。
你需要一个指针,你希望交换的类型,在这种情况下,类型为char *,这样一个指针为char *为char ** – ZivS