C語(yǔ)言中變量遵循“先定義后使用”的原則:

成都網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
1、定義變量的格式:數(shù)據(jù)類(lèi)型? 變量名;
首先要強(qiáng)調(diào)的一點(diǎn)是:變量的定義是一條語(yǔ)句,每條語(yǔ)句都是以分號(hào)結(jié)尾的。故定義完變量,后面不要漏掉“;”分號(hào)。
在變量定義中,“數(shù)據(jù)類(lèi)型”表示想要存儲(chǔ)什么類(lèi)型的數(shù)據(jù)就定義什么類(lèi)型的變量。
如想要存儲(chǔ)整數(shù)就定義成 int 型;想要存儲(chǔ)小數(shù)就定義成 float 型或 double 型;想要存儲(chǔ)字符就定義成 char 型等等。
“變量名”就是你想給這個(gè)變量起個(gè)什么名字,通常都是用字母、數(shù)字與下劃線(xiàn)組合而成。比如:
“int i;double price;double goods_price2”等等。
就表示定義了一個(gè)整型變量 i、小數(shù)型變量price、goods_price2;
2、變量定義完成后,接下來(lái)就是使用變量,為變量賦值。
將一個(gè)值放到一個(gè)變量中,這個(gè)動(dòng)作叫“賦值”。通俗點(diǎn)講,“給變量賦值”意思就是將一個(gè)值傳給一個(gè)變量。
賦值的格式是:
變量名 =? 要賦的值;
它的意思是將=右邊的數(shù)字賦給左邊的變量。比如:
i = 3;
這就表示將 3 賦給了變量 i,此時(shí) i 就等于 3 了。
3、變量的定義和賦值,可以分成兩步寫(xiě),也可以將它們合成一步,而且事實(shí)上,在實(shí)際編程中用得最多的也是合二為一的寫(xiě)法。
形式如下:
數(shù)據(jù)類(lèi)型? 變量名 = 要賦的值;
比如:int i = 3;
就表示定義了一個(gè)變量 i,并把 3 賦給這個(gè)變量。它與
int i;
i =3;
是等價(jià)的。
在定義變量時(shí)也可以一次性定義多個(gè)變量,比如:
int i, j;
這就表示定義了變量 i 和 j。這里需要強(qiáng)調(diào)的是,當(dāng)同時(shí)定義多個(gè)變量時(shí),變量之間是用逗號(hào)隔開(kāi)的,千萬(wàn)別寫(xiě)成分號(hào)。這是很多新手最容易犯的錯(cuò)誤,即將逗號(hào)和分號(hào)記混了。
同樣也可以在定義多個(gè)變量的同時(shí)給它們賦值:
int i = 3, j = 4;
中間還是用逗號(hào)隔開(kāi),最后別忘記輸入分號(hào)。
最后需要注意的是,在較老的 C89/C90 標(biāo)準(zhǔn)(也稱(chēng) ANSI C 標(biāo)準(zhǔn))中,變量只能在程序的開(kāi)頭定義,或者說(shuō)變量定義的前面不能有其他非聲明或非定義的語(yǔ)句。
擴(kuò)展資料:
在主回答中,提到了變量定義時(shí),變量名通常都是用字母、數(shù)字與下劃線(xiàn)組合而成,但是實(shí)際上,變量名也不是隨便組合的,變量定義需要遵循一定的規(guī)范,否則容易產(chǎn)生歧義,影響整體程序代碼 的可讀性。
所以在定義變量的時(shí)候,要注意以下命名規(guī)范:
(1)、變量名的開(kāi)頭必須是字母或下劃線(xiàn),不能是數(shù)字。實(shí)際編程中最常用的是以字母開(kāi)頭,而以下劃線(xiàn)開(kāi)頭的變量名是系統(tǒng)專(zhuān)用的。命名應(yīng)當(dāng)直觀且可以拼讀,可望文知意,便于記憶和閱讀。
標(biāo)識(shí)符最好采用英文單詞或其組合,不允許使用拼音。程序中的英文單詞一般不要太復(fù)雜,用詞應(yīng)當(dāng)準(zhǔn)確。
(2)、變量名中的字母是區(qū)分大小寫(xiě)的。比如 a 和 A 是不同的變量名,num 和 Num 也是不同的變量名。當(dāng)標(biāo)識(shí)符由多個(gè)詞組成時(shí),每個(gè)詞的第一個(gè)字母大寫(xiě),其余全部小寫(xiě)。
比如:? ?int CurrentVal;
這樣的名字看起來(lái)比較清晰,遠(yuǎn)比一長(zhǎng)串字符好得多。
(3)、變量名絕對(duì)不可以是C語(yǔ)言關(guān)鍵字,不能有空格。
(4)、變量名的長(zhǎng)度應(yīng)當(dāng)符合“min-length max-information”原則。
C 是一種簡(jiǎn)潔的語(yǔ)言, 命名也應(yīng)該是簡(jiǎn)潔的。例如變量名MaxVal 就比MaxValueUntilOverflow 好用。標(biāo)識(shí)符的長(zhǎng)度一般不要過(guò)長(zhǎng),較長(zhǎng)的單詞可通過(guò)去掉“元音”形成縮寫(xiě)。
另外,英文詞盡量不縮寫(xiě),特別是非常用專(zhuān)業(yè)名詞,如果有縮寫(xiě),在同一系統(tǒng)中對(duì)同一單詞必須使用相同的表示法,并且注明其意思。
在c語(yǔ)言中用沒(méi)有函數(shù)判定一個(gè)變量的類(lèi)型,可以使用sizeof來(lái)判斷變量大小。
示例:
#include stdio.h
#include stdlib.h
int main(int argc,char **argv)? ? ? ? ?//主程序
{
//對(duì)C語(yǔ)言?xún)?nèi)置類(lèi)型的所占字節(jié)數(shù)的測(cè)試
printf("size of char is: %d\n",sizeof(char));? ? ? ?//字符型數(shù)據(jù)所占字節(jié)數(shù) 、
printf("size of short is: %d\n",sizeof(short));? ? ?//短整形數(shù)據(jù)所占字節(jié)數(shù)
printf("size of int is: %d\n",sizeof(int ));? ? ? ? //整形數(shù)據(jù)
printf("size of short int is: %d\n",sizeof(short int)); //短整形
printf("size of long int is: %d\n",sizeof(long int));? ? //長(zhǎng)整形數(shù)據(jù)
printf("size of float is: %d\n",sizeof(float));? ? ? ? ? //浮點(diǎn)型數(shù)據(jù)
printf("size of double is: %d\n",sizeof(double));? ? ? ? //雙精度數(shù)據(jù)
//對(duì)字符及字符串?dāng)?shù)組所占字節(jié)數(shù)的測(cè)量
char a[] ={'a','b','c','d','e'};
printf("size of a[] is: %d\n",sizeof(a));? ? ? ? ? ? ? ?//輸出數(shù)組a[]所占字節(jié)數(shù)
char b[]={"abcde"};? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//初始化字符串b
printf("size of b[] is: %d\n",sizeof(b));? ? ? ? ? ? ? ?//數(shù)組b[]
char c[][3]={{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'}};? //初始化二維字符型數(shù)組
printf("size of c[][] is: %d\n",sizeof(c));? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//二維數(shù)組c所占字節(jié)數(shù)
printf("size of c[0] is: %d\n",sizeof(c[0]));? ? ? ? ? ? ? ? ? ? ? ? ? ?//二維數(shù)組中的某行所占的字節(jié)數(shù),例如第0行
printf("size of c[0][0] is: %d\n",sizeof(c[0][0]));? ? ? ? ? ? ? ? ? ? ?//某行某個(gè)元素,例如第0行第0個(gè)元素
//對(duì)指針?biāo)甲止?jié)數(shù)的測(cè)量
char *p=0;
printf("size of *p is: %d\n",sizeof(p));? ? ? ? ? ? ? ? ? ? ? ?//字符型指針
system("pause");
return 0;
}
擴(kuò)展資料
使用sizeof()計(jì)算數(shù)組長(zhǎng)度
將sizeof用于 expr是并沒(méi)有計(jì)算expr的值。特別是在sizeof *p中,指針p可以是一個(gè)無(wú)效地址,因?yàn)椴恍枰獙?duì)p做解引用操作。
對(duì)char類(lèi)型或值為char類(lèi)型的表達(dá)式做sizeof操作結(jié)果為1。對(duì)引用類(lèi)型做sizeof操作,將返回存放此引用類(lèi)型對(duì)象所需的內(nèi)存空間大小。
對(duì)指針做sizeof操作,將返回存放指針?biāo)璧膬?nèi)存大小,注意,如果要獲取該指針指向?qū)ο蟮拇笮。瑒t必須對(duì)該指針進(jìn)行解引用。對(duì)數(shù)組做sizeof操作等效于對(duì)其元素做sizeof操作的結(jié)果乘上數(shù)組元素的個(gè)數(shù)。
因?yàn)閟izeof返回整個(gè)數(shù)組在內(nèi)存中的存儲(chǔ)長(zhǎng)度,所以用sizeof數(shù)組的結(jié)果初一sizeof其元素類(lèi)型的結(jié)果,即可求出數(shù)組元素的個(gè)數(shù):int sz = sizeof(ia)/sizeof(*ia);
通常將8位的塊作為一個(gè)字節(jié),32位或4個(gè)字節(jié)作為一個(gè) “字”。一般的short為半個(gè)機(jī)器字長(zhǎng),int為一個(gè)機(jī)器字長(zhǎng)。
靜態(tài)變量,特點(diǎn)就是只初始化一次。所以在這里b是只定義一次的。
于是
1 會(huì)占用,但是很少。 和全局變量定義差不多
2 沒(méi)有,因?yàn)椴淮嬖诙啻味x,只定義了一次。
3 除了生命周期,最大的差別就是作用域了。
局部變量,只能在函數(shù)內(nèi)訪(fǎng)問(wèn),而全局變量就是誰(shuí)都能訪(fǎng)問(wèn),這樣很容易出現(xiàn)混亂,尤其是多線(xiàn)程的情況下。
除此外,非靜態(tài)的局部變量,在函數(shù)退出后內(nèi)存就釋放了,如果所有變量都定義成全局的,那明顯是對(duì)內(nèi)存的一種浪費(fèi)。
c 中變量使用,必須先聲明,聲明其實(shí)就是聲明類(lèi)型和名字;
不過(guò),我想你應(yīng)該問(wèn)的是,隨便給我一個(gè)變量p,如 int* (*(*p)[10])(int,int) ,然后怎么看類(lèi)型吧、?
首先,我們一步一步來(lái)看
int a; // a 是 int 型,你懂的;
int a[10]; // a 是 int[10],也就是 10 個(gè) int 的數(shù)組類(lèi)型;
int *pi; // pi 是 int*,也就是 pi 可以放一個(gè)int變量的地址;又稱(chēng)int指針類(lèi)型
int *pj[10]; // 根據(jù)[] 的優(yōu)先級(jí)高于*,那么改寫(xiě)一下,int* ( pj[10] );
// pj 是int* [10]; 也就是10 個(gè) int* 的數(shù)組類(lèi)型
int (*pk)[10]; // pk 是指針類(lèi)型,什么指針?int [10] 類(lèi)型的指針,就是數(shù)組指針
int *fun(int, int); // fun 是個(gè)函數(shù),不是個(gè)變量,but 具有變量的某些特征;返回int*
int (*pfun)(int ,int); // pfun 類(lèi)型int (*)(int,int);函數(shù)指針,可以 pfun = fun;
下面就說(shuō),我給出的那個(gè) int* (*(*p)[10]) (int,int)
從 名字p,往外看,或是兩側(cè)看,發(fā)現(xiàn)了*,那么p就是個(gè)指針類(lèi)型;什么指針??
繼續(xù)看,看到了 [10] ,所以是 數(shù)組指針; 什么數(shù)組??
繼續(xù)看,(*),哦,是,指針數(shù)組,什么指針??
int* (int,int) ,哦,返回int*,用兩個(gè)int,作為參數(shù)的函數(shù)指針;
于是,那么 p 的類(lèi)型:
指針,
數(shù)組、指針,
指針、數(shù)組、指針
函數(shù)、指針、數(shù)組、指針
兩個(gè)int參數(shù)int*的返回值的函數(shù)、指針、數(shù)組、指針;
那個(gè),我感覺(jué)差不多了,你自己琢磨一下吧、多看多想,自然就會(huì)明白的~~~建議看看KR的那本書(shū),上面有類(lèi)型解析;~~
1、首先,我們可以在函數(shù)外面定義變量,就是全局變量。
2、局部變量可以與全局變量同樣命名。
3、但是優(yōu)先級(jí)是局部變量?jī)?yōu)先。
4、但是局部變量的生命周期是整個(gè)結(jié)構(gòu)內(nèi)。
5、全局變量是整個(gè)程序結(jié)束,才釋放。
6、我們也可以為變量加上修飾符。
分享題目:C語(yǔ)言函數(shù)里變量確定,c語(yǔ)言函數(shù)里的變量
瀏覽路徑:http://chinadenli.net/article23/dsgcjcs.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、品牌網(wǎng)站制作、ChatGPT、網(wǎng)站設(shè)計(jì)公司、虛擬主機(jī)、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容