#include
int reverse(int n,char *array)
{
char temp;
int i;
if(n==0)
return 0;
else
{
temp=array[0];
for(i=0;i
{
array[i]=array[i+1];
}
array[n-1]=temp;
// printf("%s\n",array);
reverse(n-1,array);
}
}
int main()
{
char array[]="abcde";
//char *array="abcde";
reverse(5,array);
printf("%s\n",array);
return 0;
}
如果是 char array[]就可以执行成功,而char *array就不行。
这是因为 char array[]="abcde" 是创建了一个字符数组,数组内容已改变,但是 指针array指向的地址不能改变。
而 char *array="abcde",是创建了一个字符指针,该指针指向 字符常量“abcde”,字符常量里的内容无法改变,但是 指针array可以指向别的地方。
阅读(1110) | 评论(0) | 转发(0) |