我作為一個學過多種程式語言的人,我來回答下這個問題吧。
C語言只能使用資料型別的關鍵字來定義變數,這個主要和變成語言的設計有關,每個語言的編譯器、直譯器是不同的,如果不加關鍵字,編譯器、直譯器是無法識別的。比如python語言是一中更加簡潔的語言,這一種語言它的編譯器、直譯器會自動識別型別,所以不需要。
但是C語言在設計的時候並沒有自動識別的功能,所以需要我們加關鍵字進行有效的區別。因為:
C中定義資料型別是為了容易程式設計,定義了資料型別之後又定義了資料型別之間的各種運算,這樣對程式設計人來說就會方便很多,如果不定義資料型別,那麼資料之間的差別只有位不同而已,這樣如果要定義一個字元變數,你首先要去申請一個8位的記憶體,再去按ASCII碼對其進行賦值,這樣對程式設計人員來說是很恐怖的。
另,轉述下 Edwin Brady 在《Type-driven Development with Idris》中的說法,型別有以下幾個重要角色:
希望對你有幫助,歡迎討論留言!
我作為一個學過多種程式語言的人,我來回答下這個問題吧。
與python比較C語言只能使用資料型別的關鍵字來定義變數,這個主要和變成語言的設計有關,每個語言的編譯器、直譯器是不同的,如果不加關鍵字,編譯器、直譯器是無法識別的。比如python語言是一中更加簡潔的語言,這一種語言它的編譯器、直譯器會自動識別型別,所以不需要。
需要型別的原因但是C語言在設計的時候並沒有自動識別的功能,所以需要我們加關鍵字進行有效的區別。因為:
1,編譯器需要知道變數需要多大的記憶體空間;2,編譯器需要知道如何訪問變數。C中定義資料型別是為了容易程式設計,定義了資料型別之後又定義了資料型別之間的各種運算,這樣對程式設計人來說就會方便很多,如果不定義資料型別,那麼資料之間的差別只有位不同而已,這樣如果要定義一個字元變數,你首先要去申請一個8位的記憶體,再去按ASCII碼對其進行賦值,這樣對程式設計人員來說是很恐怖的。
附錄另,轉述下 Edwin Brady 在《Type-driven Development with Idris》中的說法,型別有以下幾個重要角色:
對機器而言,型別描述了記憶體中的電荷是怎麼解釋的。對編譯器或者直譯器而言,型別可以協助確保上面那些電荷、位元組在程式的執行中始終如一地被理解。對程式設計師而言,型別可以幫助他們命名、組織概念,幫助編纂文件,支援互動式編輯環境等。希望對你有幫助,歡迎討論留言!