小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

數(shù)組和指針的區(qū)別

 lchjczw 2012-04-05
 發(fā)信人:   RoachCock   (chen3feng),   信區(qū):   CPlusPlus                
標(biāo)     題:   [FAQ]數(shù)組與指針有什么區(qū)別?  
發(fā)信站:   BBS   水木清華站   (Tue   Jan   14   16:12:01   2003),   站內(nèi)  
 
[數(shù)組和指針的分配]  
 
數(shù)組是開辟一塊連續(xù)的內(nèi)存空間,數(shù)組本身的標(biāo)示符代表整個數(shù)組,可以用sizeof取得真  
實的大小  
 
指針則是只分配一個指針大小的內(nèi)存,并可把它的值指向某個有效的內(nèi)存空間  
 
[空間的分配]  
 
[全局的和靜態(tài)的]  
char   *p= "hello ";  
一個指針,指向只讀數(shù)據(jù)塊(section)里的 "hello ",可被編譯器放入字符串池(也就是說,  
你在寫一個char   *q= "hello ",可能和p共享數(shù)據(jù))  
 
char   a[]= "hello ";  
一個數(shù)組,分配在可寫數(shù)據(jù)塊(section),不會被放到字符串池中  
 
[局部]  
char   *p= "hello ";  
一個指針,指向只讀數(shù)據(jù)塊(section)里的 "hello ",可被編譯器放入字符串池(也就是說,  
你在寫一個char   *q= "hello ",可能和p共享數(shù)據(jù)),另外,在函數(shù)中可以返回它的地址,也就  
是說,指針是局部變量,他指向的數(shù)據(jù)卻是全局的.  
 
char   a[]= "hello ";  
一個數(shù)組,分配在堆棧上,初始化由編譯器進行(短的話直接用指令填充,長的就從全局字  
符串表拷貝),不會被放到字符串池中(但是卻可能從字符串池中拷貝過來),也不應(yīng)該返回  
它的地址.  
 
[代碼中的字面字符串]  
printf( "%s\n ", "hello ");  
這兩個字面常量( "%s\n "和 "hello "),都在只讀數(shù)據(jù)塊里  
 
[用途]  
1.全局指針  
用于不需要修改內(nèi)容,卻可能會修改指針的情況(當(dāng)然,不修改也沒人反對)  
 
2.全局?jǐn)?shù)組,用于不需要修改地址,卻需要修改內(nèi)容的場合  
 
3.既需要修改指針,有需要修改內(nèi)容怎么辦呢?定義一個數(shù)組,在定義一個指針指向它就可  
以了  
 
4.函數(shù)中如果不需要修改字符串的內(nèi)容,應(yīng)該盡量用char*p= "xxx "這種寫法.初始化的局  
部字符數(shù)組影響效率,一般應(yīng)該盡量避開(應(yīng)該使用的情況下則不要猶豫)  
 
以上說的是VC6的情況,   其他編譯器也可以據(jù)此推測,  

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多