C語言的32個關(guān)鍵字 C語言是不是只能使用數(shù)據(jù)類型的關(guān)鍵字來定義變量?為什么?
C語言是不是只能使用數(shù)據(jù)類型的關(guān)鍵字來定義變量?為什么?謝謝邀請。c語言大部分時候,只能用數(shù)據(jù)類型關(guān)鍵字來定義變量,如:int,long int,double void等。但很多時候也可用其它類型關(guān)鍵
C語言是不是只能使用數(shù)據(jù)類型的關(guān)鍵字來定義變量?為什么?
謝謝邀請。
c語言大部分時候,只能用數(shù)據(jù)類型關(guān)鍵字來定義變量,如:int,long int,double void等。但很多時候也可用其它類型關(guān)鍵字,舉例如下:
1,const :聲明只讀變量.
如:
const char cosin=1它表示cosin值在程序中只能引用,不能改變,在程序中經(jīng)常用到。
簡化,把char取掉,寫成:
const cosin=1;
編繹也是正確的,執(zhí)行也沒問題。
這說明不用數(shù)據(jù)類型char也是可以的。
同理,const cosin=0.5498654;
也同樣執(zhí)行過確。
2,sizeof:計算數(shù)據(jù)類型長度
如:
return(sizeif(a));
返回類型可以是int,也可以是其它。
3,typedef:
typedef struct
{
int a
bool c
}astruct
那么,在別的地方可直接這樣定義一個結(jié)構(gòu):
astruct struct1
4,extern
函數(shù)asint()
在另外一個文件中
extern asint()
總結(jié):關(guān)鍵字很多,用在專用場合。
C語言的數(shù)據(jù)類型分為幾種?
您好!
short、int、long、char、float、double 這六個關(guān)鍵字代表C 語言里的六種基本數(shù)據(jù)類型。
在不同的系統(tǒng)上,這些類型占據(jù)的字節(jié)長度是不同的:
在32 位的系統(tǒng)上
short 占據(jù)的內(nèi)存大小是2 個byte;
int占據(jù)的內(nèi)存大小是4 個byte;
long占據(jù)的內(nèi)存大小是4 個byte;
float占據(jù)的內(nèi)存大小是4 個byte;
double占據(jù)的內(nèi)存大小是8 個byte;
char占據(jù)的內(nèi)存大小是1個byte。
具體可以用sizeof測試一下即可。
C語言32個關(guān)鍵字里,哪些可以用來聲明定義變量?該注意些什么?
首先從C語言的特點來說,它是一種靜態(tài)語言,所有變量都必須有一個類型,不管是基本類型,如int,char,float,double等,還是結(jié)構(gòu)體、聯(lián)合體、枚舉等自定義類型,只要是類型關(guān)鍵字,都可以用來定義變量。此外,還有一個變量類型叫指針,又分為變量指針和函數(shù)指針,其中變量指針指向特定數(shù)據(jù)類型的地址,函數(shù)指針指向函數(shù)的入口地址,只要將變量類型與*號結(jié)合就可以聲明指針。此處應該注意一點,指針是一個遞歸定義,也就是說指針可以指向一個指針,有點拗口,核心意思就是指針可以一直指下去。
函數(shù)指針類型的變量定義有點特殊,這里舉一個例子:
定義:typedef void (*myFun)(int)
?????? ? void FunImp(int param){/*函數(shù)內(nèi)容*/}
使用:myFun = FunImpmyFun(10)?
綜上,記住一個關(guān)鍵點定義變量一定要有類型,這個不同于Python等動態(tài)語言,為了更清楚程序運行時的狀態(tài),最好能知道每種類型的變量在內(nèi)存中占據(jù)的空間大小,這一點很關(guān)鍵,很多bug就是因為變量在不同的系統(tǒng)中占據(jù)的內(nèi)存大小不一樣導致的。比如對于Int類型,在32位系統(tǒng)占用4字節(jié),而在64位系統(tǒng)就占據(jù)8字節(jié)。此外,還要清楚數(shù)據(jù)在內(nèi)存中的大小端模式,即高位字節(jié)在前還是地位字節(jié)在前。
C語言怎么說明一種新的類型名?
題主你好。嚴Sir很高興來回答你的問題。
認真的看了你在問題中的配圖,發(fā)現(xiàn)你應該是在做題當中產(chǎn)生的一個疑問,應該是你無法理解為啥會選擇C這個答案。
首先,我必須要告訴你:這道題的備選項中,C這個答案是錯誤的。
這個錯語應該是來源于印刷錯誤。你發(fā)出的圖如下:
通過分析,C這個答案應該是:typedef int v3
其次,typedef的作用,嚴格來說,并不是說明一種新的類型名,而是給已有類型名取一個別名。
typedef是C語言的關(guān)鍵字,作用是為一種數(shù)據(jù)類型定義一個新名字。這里的數(shù)據(jù)類型包括內(nèi)部數(shù)據(jù)類型(int,char等)和自定義的數(shù)據(jù)類型(struct等)。
在編程中使用typedef目的一般有兩個,一個是給變量一個易記且意義明確的新名字,另一個是簡化一些比較復雜的類型聲明。
根據(jù)題主現(xiàn)在處于水平狀態(tài),只需要去理解使用typedef給已有變量一個易記且意義明確的新名字(別名)。
格式: typedef 數(shù)據(jù)類型名 別名
注意:別名要遵守C語言標識符的命名規(guī)則。
如:typedef int v3 該條語句的作用是就是用v3這個名字來代表int型。
最后,請題主記住,有時候不是你的理解錯了,而是你手里拿到的資料有問題,需要你用最基本的知識去分析它,這可以得到答案了。
以上便是該問的回答。如果覺得有所幫助,請關(guān)注 嚴Sir課堂。我們會為你提供系統(tǒng)的C語言學習教程。