关于返回指针地址的问题
#include<stdio.h>
char* fangxu(char *s1)
{
char a[50];
char *q;
int i=0,j;
while(*s1)
{
s1++;
i++;
}
s1--;
for(j=0;i>0;i--,j++)
{
a[j]=*s1;
s1--;
}
a[j]=0;
q=a;
//如果在这里加个printf("%s\n",q); 打印出来的是反序后的字符串啊
return q;
}
void main(void)
{
char b[50];
printf("请输入一串字符串:");
gets(b);
printf("反序后:");
printf("%s\n",fangxu(b)); //为什么这里什么也没打印出来?难道没返回指针地址吗?
}
char* fangxu(char *s1)
{
char a[50];
char *q;
int i=0,j;
while(*s1)
{
s1++;
i++;
}
s1--;
for(j=0;i>0;i--,j++)
{
a[j]=*s1;
s1--;
}
a[j]=0;
q=a;
//如果在这里加个printf("%s\n",q); 打印出来的是反序后的字符串啊
return q;
}
void main(void)
{
char b[50];
printf("请输入一串字符串:");
gets(b);
printf("反序后:");
printf("%s\n",fangxu(b)); //为什么这里什么也没打印出来?难道没返回指针地址吗?
}
...全文
相关推荐
详解C语言函数返回值解析
主要介绍了详解C语言函数返回值解析的相关资料,需要的朋友可以参考下
深入解析函数指针与返回函数的指针
以下是对函数指针与返回函数的指针进行了详细的分析介绍,需要的朋友可以过来参考下
函数参数的传递问题(指针的指针)
结论:1. 函数的返回值是指针类型的,检查是静态内存指针还是堆内存指针还是栈内存指针,栈内存指针是绝对要不得滴!2. 函数需要使用指针参数进行传入传出的,在函数中只能对指针的指向的值(*p)进行修改,而不能修改指针指向,也就是指针地址!(函数中不得修改指针参数的地址,否则请使用指针的指针!
详细介绍C语言指针函数和函数指针
往往,我们一提到指针函数和函数指针的时候,就有很多人弄不懂。下面详细为大家介绍C语言中指针函数和函数指针。
常量指针和指针常量,函数指针和指针函数的记忆方法
参考链接: https://blog.csdn.net/youyou519/article/details/82704401 https://blog.csdn.net/qq_40334837/article/details/96297079 https://blog.csdn.net/ChaoFeiLi/article/details/103612849 倒着读: char * const s s is a const pointer to char,翻译:s是一个常量指针(所以s的指向是固定的),指向char类型,但s的指向地址的内容是可变的 const char * s; s is


