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

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

Chinaunix

  平臺(tái) 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 3254 | 回復(fù): 14
打印 上一主題 下一主題

[C] 有關(guān)自動(dòng)變量的小問題,牛人勿入。 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-04-25 14:03 |只看該作者 |倒序?yàn)g覽
  1. #include<stdio.h>
  2. #include<string.h>
  3. char *get(void)
  4. {
  5.         char *p="china";
  6.         return p;
  7. }
  8. void main(void)
  9. {
  10.         char *q;
  11.         q=get();
  12.         printf("%s\n",q);
  13. }
復(fù)制代碼
函數(shù)get中的自動(dòng)變量p賦給了q,然后又輸出q,我覺得寫的不對(duì)。為什么照樣可以輸出?

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2010-04-25 14:11 |只看該作者
"china"屬于常量,,可能被存儲(chǔ)在了常量區(qū),或者全局區(qū),,所以你這個(gè)代碼可以正常執(zhí)行

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2010-04-25 14:15 |只看該作者
算了,既然我不是牛人,就來回答這個(gè)簡(jiǎn)單問題吧。

get雖然返回的是一個(gè)局部變量(指針),但是巧的是,由于程序中的字符串采用了“硬編碼”,編譯執(zhí)行后,“china”處于程序的靜態(tài)區(qū),而且這個(gè)位置在get返回后是不會(huì)被銷毀或者回收的,所以p指向的總是一個(gè)有效的地址,于是就可以大搖大擺的賦給q而沒有問題了。

話是這么說,不過要真寫程序,這么干的人一定會(huì)被老板罵地……

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2010-04-25 14:19 |只看該作者
如果在函數(shù)中把這種常量賦給一個(gè)指針,那么這個(gè)指針和main函數(shù)里的常量無異了?不解

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2010-04-25 14:21 |只看該作者
本帖最后由 poke006 于 2010-04-25 14:30 編輯

呵呵,你們都是牛人,

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2010-04-25 16:17 |只看該作者
"china"應(yīng)該是在全局區(qū)

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2010-04-25 16:21 |只看該作者
"china"應(yīng)該是在全局區(qū)
河邊一支柳 發(fā)表于 2010-04-25 16:17



    我本來不想發(fā)言的,建議你去看書。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2010-04-25 16:34 |只看該作者
我本來不想發(fā)言的,建議你去看書。
prolj 發(fā)表于 2010-04-25 16:21



    那要看編譯器具體怎么實(shí)現(xiàn)的。。。實(shí)現(xiàn)在全局區(qū),也未嘗不可

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2010-04-25 16:42 |只看該作者
難道你要跟我討論gcc的實(shí)現(xiàn)么?
好像C標(biāo)準(zhǔn)有規(guī)定/建議的,我不是字典,不要讓我提供頁碼,我記不住。
要照你那么說,我完全可以放在代碼段,或者自己規(guī)定一個(gè)chian段,沒啥意義。

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2010-04-25 16:47 |只看該作者
首先謝謝p咦的回答,很可能糾正了我以前的一個(gè)錯(cuò)誤,但c標(biāo)準(zhǔn)確實(shí)沒看過

我以前的理解就是這樣

                          low   address   
        +--------------------------------+   
        |       _TEXT   class   'CODP'                       |   
        |                 code                                         |   
        +--------------------------------+--   
        |       _DATA   class   'DATA'                       |     
        |           initialized   data                       |     
        +--------------------------------+   DGROUP   
        |       _BSS   class   'BSS'                           
        |           uninitialized   data                    
        +--------------------------------+--   
        |                                                               
        |           FREE   SPACE                                 
        +--------------------------------+   
        |                                                               
        |           STACK                                            
        +--------------------------------+  
        |                                                               
        |           HEAP                                               
        +--------------------------------+   
        |                                                                 
        |           FREE   SPACE                                   
        +--------------------------------+   
                    high   address
您需要登錄后才可以回帖 登錄 | 注冊(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)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP