c++相對c是強型別語言

來源:互聯網
上載者:User

孤立地判定一個語言是弱類型還是強型別是沒有意義的,因為在學術界還沒有"strongly typed language"的統一的定義。我們只能說語言A相對於語言B是強型別的。籠統地將,強型別語言是能夠禁止任何違反類型系統的代碼的語言,或者說是能夠捕獲所有違反類型系統的錯誤的語言。我們說C++相對於C是強型別的,是因為C++禁止了一些C中的隱式轉換,比如將void*轉換為任意的指標類型。   

C語言規定所有變數的定義必須在語句之前,而C++比較靈活,可以隨便定義。
C++ 是強型別語言,因為你定義了一個整型變數後,就不能付一個字元型資料給這個變數(除非你用強制類型轉換)

像VB, PHP, 這些語言, 就屬於弱類型語言,因為你使用一個變數,
可以不經過定義。 而且當你付不同類型資料給這個變數, 也不會編譯出錯,而且是允許這樣做的。  
靜態類型定義語言    
   
一種在編譯時間,資料類型是固定的語言。大多數靜態類型定義語言強制這一點,它要求你在使用所有變數之前要聲明它們的資料類型。Java和C是靜態類型定義語言。    
   
動態類型定義語言    
   
一種在執行期間才去探索資料類型的語言,與靜態類型定義相反。VBScript和Python是動態類型定義的,因為它們是在第一次給一個變數賦值的時候找出它的類型的。    
   
強型別定義語言    
   
一種總是強制類型定義的語言。Java和Python是強制類型定義的。如果你有一個整數,如果不顯示地進行轉換,你不能將其視為一個字串(在本章後面會有更多如何去做的內容)。  
   
弱類型定義語言    
   
一種類型可以被忽略的語言,與強型別定義相反。VBScript是弱類型定義的。在VBScript中,可以將字串   '12'   和整數   3   進行串連得到字串   '123',然後可以把它看成整數   123,而不需要顯示轉換。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.