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

分享

Java中的數(shù)組和C語言中的數(shù)組有何異同?

 重金屬男孩 2007-06-10
樓主:好象聽說是有些不一樣,請高手指教。
 
 
2 樓:有一些不一樣。  
  對于原語類型的數(shù)組,如int[]   a,在C里面只要這樣定義之后就可以用a[i]使用了,但是在JAVA里面是不行的,必須用int[]   a   =   new   int[LENGTH];來為數(shù)組分配空間。這里的a更應(yīng)該看成C里面的指針,它和C里面的int*   a是一樣的,因?yàn)檫@個(gè)a(C里面的)也要先malloc一個(gè)空間之后才可以用。  
  對于對象數(shù)組,則要“兩次分配”,如:  
  Object[]   obj   =   new   Object[2];  
  obj[0]   =   new   Object();  
  obj[1]   =   new   Object();  
  因?yàn)閿?shù)組首先是一個(gè)句柄,而這個(gè)句柄指向的2個(gè)空間里面又是存儲著兩個(gè)指向Object類型的句柄。  
  而C里面不完全相同:  
  struct   Object{};  
  struct   Object*   obj   =   (struct   Object   *)malloc(2   *   sizeof(struct   Object));  
   
  其實(shí)他們的原理大至是相同的。只不過JAVA里數(shù)組的內(nèi)存分配是在堆里面的,必須用new   來分配,而C里面是在棧里面分配的,定義的時(shí)候會自動(dòng)分配。  
  在《Thinking   in   JAVA》中有更詳細(xì)的介紹。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多