C语言函数只读字符串参数问题
答案:2 悬赏:40 手机版
解决时间 2021-11-12 12:33
- 提问者网友:骨子里的高雅
- 2021-11-11 22:37
C语言函数只读字符串参数问题
最佳答案
- 五星知识达人网友:纵马山川剑自提
- 2021-11-11 23:51
c语言编译器默认是不让返回指针类型的,但是返回并没有错,有些情况下会正常执行,当然编译无论是否可以正常执行都会编译。这是因为指针变量在函数中,一旦函数结束,这个指针指向的地址就会作废,suoyi 没意义,故编译器默认返回时会提醒。一般使用加上static使其不销毁。追问不对吧,像是头文件里,就有好几个函数返回的指针。而且在我看的《C Primer Plus (第五版)中文版》里也从来没说过函数不能返回指针。编译器也没有因为返回指针而提醒、出错。
我说的警告只是因为有const,去掉就毫无问题了,而且也只是警告,运行结果也正常。追答函数可以返回指针,但是自定义函数通常返回的指针都是局部的指针,会被消除的,但是不代表不可以返回。编译器只是害怕你出错,才提醒你一下,但是不会强行要求你怎样。
我说的警告只是因为有const,去掉就毫无问题了,而且也只是警告,运行结果也正常。追答函数可以返回指针,但是自定义函数通常返回的指针都是局部的指针,会被消除的,但是不代表不可以返回。编译器只是害怕你出错,才提醒你一下,但是不会强行要求你怎样。
全部回答
- 1楼网友:愁杀梦里人
- 2021-11-12 00:41
类型不同 返回的是char* 而string是const
如果 char ch = xyz(st);
ch[0] = 'z';
这样你何解。
你编一个这个试试看。
char * s = "hello";
char *ch;
ch = xyz(s);
ch[0] = 'w';
看这样报错吗。
如果 char ch = xyz(st);
ch[0] = 'z';
这样你何解。
你编一个这个试试看。
char * s = "hello";
char *ch;
ch = xyz(s);
ch[0] = 'w';
看这样报错吗。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯