亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
123下一頁(yè)
最近訪(fǎng)問(wèn)板塊 發(fā)新帖
查看: 26832 | 回復(fù): 21
打印 上一主題 下一主題

[C] 請(qǐng)教一個(gè)基礎(chǔ)的函數(shù)返回值問(wèn)題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-04-29 21:41 |只看該作者 |倒序?yàn)g覽
#include <stdlib.h>

char *func()
{
       char *aa=asdfasdf";
      
       return aa;
}
int  func1( char *bb )
{
      bb=func();                                 //strcpy(bb,"adafsfas");
      printf( "func1:[%s]\n", bb );  
      return 0;
}
void main( )
{
       char cc[20];
       func1( cc );
       printf(  "main:[%s]\n", cc );
}

得到的結(jié)果:
func1[asdfasdf]
main:[?9]

我的問(wèn)題是為什么bb的值不能傳遞回給cc呢?

[ 本帖最后由 handsome-king 于 2009-4-29 23:20 編輯 ]

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2009-04-29 21:49 |只看該作者
你這個(gè)bb=func1();是不是寫(xiě)錯(cuò)了
應(yīng)該是bb=func()吧,按照你的意思。
你用下面的代碼應(yīng)該OK:

  1. char *func()
  2. {
  3.        char* aa = new char[20];
  4.        strcpy( aa, "asdfasdf" )
  5.        return aa;
  6. }
復(fù)制代碼

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2009-04-29 21:51 |只看該作者
不好意思,筆誤。。-_-!!!!
C++就搞不清楚了^_^

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2009-04-29 21:52 |只看該作者
呵呵,你這明顯還是C風(fēng)格。

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2009-04-29 22:00 |只看該作者
嗯,是呀。。謝謝你。^_^
我就覺(jué)得是不是函數(shù)返回值跟參數(shù)傳遞的區(qū)別的問(wèn)題。

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2009-04-29 22:14 |只看該作者
char *func(char *aa)
{
       strcpy(aa, "asdfasdf")
       return aa;
}
int  func1( char *bb )
{
     func( bb);                                 //strcpy(bb,"adafsfas");
      printf( "func1:[%s]\n", bb );  
      return 0;
}

==========================
C語(yǔ)言基礎(chǔ)語(yǔ)法問(wèn)題 建議翻書(shū)

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2009-04-29 22:18 |只看該作者
LS的朋友,你可以選擇不回答。我也覺(jué)得是基礎(chǔ),但是就是不明白啊

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2009-04-29 22:22 |只看該作者
原帖由 handsome-king 于 2009-4-29 22:00 發(fā)表
嗯,是呀。。謝謝你。^_^
我就覺(jué)得是不是函數(shù)返回值跟參數(shù)傳遞的區(qū)別的問(wèn)題。

是啊, 傳的是cc的副本 不會(huì)改cc本身的值

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2009-04-29 22:26 |只看該作者
LS的意思是func1(cc)傳遞的是cc的副本?那為什么我在func1里面對(duì)bb的賦值改成strcpy,而不是用函數(shù)賦值就可以傳回給cc呢?

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2009-04-29 22:51 |只看該作者
原帖由 handsome-king 于 2009-4-29 22:26 發(fā)表
LS的意思是func1(cc)傳遞的是cc的副本?那為什么我在func1里面對(duì)bb的賦值改成strcpy,而不是用函數(shù)賦值就可以傳回給cc呢?

你的程序你確認(rèn)是你所說(shuō)的結(jié)果?

我這里的輸出:
[root@myfedora c]# !gcc
gcc 2.c
2.c: In function &iexcl;&reg;func&iexcl;&macr;:
2.c:9: warning: function returns address of local variable
2.c: In function &iexcl;&reg;main&iexcl;&macr;:
2.c:18: warning: return type of &iexcl;&reg;main&iexcl;&macr; is not &iexcl;&reg;int&iexcl;&macr;
[root@myfedora c]# ./a.out
func1:[L]
main:[?9]
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP