return语句的返回值可以为一个字符串吗?

C语言的,用字符类型指针指向该字符串(用字符数组表示),返回指针给main函数之后,为什么不能在主函数里将整个字符串输出呢?

return语句可以返回字符串

操作步骤如下:

1、打开pl/sql编辑器;

2、编写函数;当入参小于10时,返回1;否则返回字符串'abc';

create or replace function fun_test_return(str number) return varchar2 as

  v_ret varchar2(20);

begin

  if str < 10 then

    v_ret := 1;

  else

    v_ret := 'abc';

  end if;

  return v_ret;

end;

3、右击函数名,选择‘编辑’;

4、测试函数,输入变量31(大于10),则返回‘abc’;

5、而如果输入变量8(小于10),则返回1;

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-28
可以返回字符串指针,不可以返回字符串。
指针函数是指返回值是指针的函数,即本质是一个函数。
函数指针是指向函数的指针变量,即本质是一个变量。
如果返回的是指针,直接使用就可以了
char * sub()
{
char *out = new char[20];
strcpy(out,"hello, world!");
return out;
}
void main(void)
{
printf("%s\n",sub());
}本回答被网友采纳
第2个回答  2013-03-19
java里面可以直接返回字符串的,因为有String这个类型。C/C++里面的话,只能返回字符数组
比如public char[] getName(){ char str[10];gets(str);return str;}
第3个回答  2019-03-05
可以吧,比如说输出月份英文名
#include <stdio.h>
char *getmonth( int n );
int main()
{
int n;
char *s;
scanf("%d", &n);
s = getmonth(n);
if ( s==NULL ) printf("wrong input!\n");
else printf("%s\n", s);
return 0;
}
char *getmonth( int n )
{
switch(n){

case 1:return "January";
case 2:return "February";
case 3:return "March";
case 4:return "April";
case 5:return "May";
case 6:return "June";
case 7:return "July";
case 8:return "August";
case 9:return "September";
case 10:return "October";
case 11:return "November";
case 12:return "December";
default:return NULL;

}
}
第4个回答  2013-03-19
return语句只能够返回你所需要的字符串的指针
相似回答