星沉大海3
c語言大部分時候,只能用數據類型關鍵字來定義變量,如:int,long int,double void等。但很多時候也可用其它類型關鍵字,舉例如下:
如:
const char cosin=1;它表示cosin值在程序中只能引用,不能改變,在程序中經常用到。
簡化,把char取掉,寫成:
const cosin=1;
編繹也是正確的,執行也沒問題。
這說明不用數據類型char也是可以的。
同理,const cosin=0.5498654;
也同樣執行過確。
2,sizeof:計算數據類型長度
如:
return(sizeif(a));
返回類型可以是int,也可以是其它。
3,typedef:
typedef struct
{
int a;
bool c;
}astruct
那麼,在別的地方可直接這樣定義一個結構:
astruct struct1;
4,extern
函數asint()
在另外一個文件中
extern asint()
總結:關鍵字很多,用在專用場合。
beijingwanger
我作為一個學過多種編程語言的人,我來回答下這個問題吧。
與python比較
C語言只能使用數據類型的關鍵字來定義變量,這個主要和變成語言的設計有關,每個語言的編譯器、解釋器是不同的,如果不加關鍵字,編譯器、解釋器是無法識別的。比如python語言是一中更加簡潔的語言,這一種語言它的編譯器、解釋器會自動識別類型,所以不需要。
需要類型的原因
但是C語言在設計的時候並沒有自動識別的功能,所以需要我們加關鍵字進行有效的區別。因為:
1,編譯器需要知道變量需要多大的內存空間;2,編譯器需要知道如何訪問變量。
C中定義數據類型是為了容易編程,定義了數據類型之後又定義了數據類型之間的各種運算,這樣對編程人來說就會方便很多,如果不定義數據類型,那麼數據之間的差別只有位不同而已,這樣如果要定義一個字符變量,你首先要去申請一個8位的內存,再去按ASCII碼對其進行賦值,這樣對編程人員來說是很恐怖的。
附錄
另,轉述下 Edwin Brady 在《Type-driven Development with Idris》中的說法,類型有以下幾個重要角色:
- 對機器而言,類型描述了內存中的電荷是怎麼解釋的。
- 對編譯器或者解釋器而言,類型可以協助確保上面那些電荷、字節在程序的運行中始終如一地被理解。
- 對程序員而言,類型可以幫助他們命名、組織概念,幫助編纂文檔,支持交互式編輯環境等。
希望對你有幫助,歡迎討論留言!
皇德華叫獸
是的,任何變量都需要有一個明確的類型,原因如下:
1,編譯器需要知道變量需要多大的內存空間;
2,編譯器需要知道如何訪問變量,如支持什麼樣的操作符等。
當然在 C 裡面你可以給已有的類型定義別名,如:
typedef int 整數;
整數 i = 123;
別名可以是任何符合C語法規範的名字。
也可以給用於自定義類型命名,如:
typedef struct tagStudent
{
int id;
char* name;
} Student;
這裡定義了一個結構體 ,並定義了一個別名。