gpt4 book ai didi

c - 将 char 指针作为参数传递给函数

转载 作者:太空宇宙 更新时间:2023-11-04 00:48:29 25 4
gpt4 key购买 nike

<分区>

此程序打印字符串的不同排列。如果我在 main 中将字符串声明为 char 数组并在 printAnagram 函数中传递数组名称,它会正常工作。但是如果我将字符串声明为char* s = "hello"并传递 's' 然后它崩溃了。为什么?

#include <stdio.h>
#include <conio.h>

void printAnagram(char *str, int b, int e);

int main()
{
char *s = "ABC"; // works fine when char s[] = "ABC" is used.
printAnagram(s, 0, 2);
return 0;
}

void swap(char *a, char* b)
{
char temp = *a;
*a = *b;
*b = temp;
}
void printAnagram(char *str, int b, int e)
{
int i = 0;
if(b==e)
printf("%s\n", str);
else
{
for(i=b;i<=e;i++)
{
swap((str+b),(str+i));
printAnagram(str, b+1, e);
swap((str+b), (str+i));
}
}
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com