c語(yǔ)言中主函數(shù)中定義的變量只能在主函數(shù)中使用,所以你還得再定義一個(gè)變量。
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供內(nèi)蒙古企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為內(nèi)蒙古眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
當(dāng)然,捏可以把主函數(shù)中定義的這個(gè)變量傳遞給被調(diào)用的函數(shù)作為參數(shù)。
例如
void
fun(int
x)
{
}
main()
{
int
num=9;
fun(9);
}
但是如果你要在被調(diào)用函數(shù)中使用這個(gè)變量例如
fun()
{
num++;
}
像這樣,就是錯(cuò)的,編譯器會(huì)報(bào)錯(cuò),main中定義的變量是局部變量,只能在main中使用。
你可以在main外部定義一個(gè)變量,這樣在被調(diào)用函數(shù)中也就可以使用了。
這樣吧,我們舉個(gè)例子,假如寫(xiě)一個(gè)程序就是炒一道菜,
炒菜呢需要材料,變量呢就是你的材料,一個(gè)個(gè)的材料都放在碗里等著你用。
開(kāi)始洗菜、切菜、炒菜,這一個(gè)個(gè)的過(guò)程就是函數(shù)。
最后材料和過(guò)程就結(jié)合成一道菜,這整個(gè)做菜的流程就是一個(gè)程序。
C語(yǔ)言中變量遵循“先定義后使用”的原則:
1、定義變量的格式:數(shù)據(jù)類型? 變量名;
首先要強(qiáng)調(diào)的一點(diǎn)是:變量的定義是一條語(yǔ)句,每條語(yǔ)句都是以分號(hào)結(jié)尾的。故定義完變量,后面不要漏掉“;”分號(hào)。
在變量定義中,“數(shù)據(jù)類型”表示想要存儲(chǔ)什么類型的數(shù)據(jù)就定義什么類型的變量。
如想要存儲(chǔ)整數(shù)就定義成 int 型;想要存儲(chǔ)小數(shù)就定義成 float 型或 double 型;想要存儲(chǔ)字符就定義成 char 型等等。
“變量名”就是你想給這個(gè)變量起個(gè)什么名字,通常都是用字母、數(shù)字與下劃線組合而成。比如:
“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ù)類型? 變量名 = 要賦的值;
比如: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)(也稱 ANSI C 標(biāo)準(zhǔn))中,變量只能在程序的開(kāi)頭定義,或者說(shuō)變量定義的前面不能有其他非聲明或非定義的語(yǔ)句。
擴(kuò)展資料:
在主回答中,提到了變量定義時(shí),變量名通常都是用字母、數(shù)字與下劃線組合而成,但是實(shí)際上,變量名也不是隨便組合的,變量定義需要遵循一定的規(guī)范,否則容易產(chǎn)生歧義,影響整體程序代碼 的可讀性。
所以在定義變量的時(shí)候,要注意以下命名規(guī)范:
(1)、變量名的開(kāi)頭必須是字母或下劃線,不能是數(shù)字。實(shí)際編程中最常用的是以字母開(kāi)頭,而以下劃線開(kāi)頭的變量名是系統(tǒng)專用的。命名應(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ě),特別是非常用專業(yè)名詞,如果有縮寫(xiě),在同一系統(tǒng)中對(duì)同一單詞必須使用相同的表示法,并且注明其意思。
#include stdio.h
void exe(int** p, int** q);
void main()
{
int *p, *q, a, b;
scanf("%d %d", a, b);
p = a;
q = b;
if (a b)
{
? exe(p, q);
}
printf("a=%d,b=%d\n", a, b);
printf("max=%d,min=%d\n", *p, *q);
}
void exe(int** p, int** q)
{
int* t;
t = *p;
*p = *q;
*q = t;
}
如果按舊的c語(yǔ)言標(biāo)準(zhǔn)(c89)確實(shí)是,函數(shù)內(nèi)部使用的變量必須定義在開(kāi)頭
c99標(biāo)準(zhǔn)支持隨處定義變量,因此不受限制,不過(guò)由于支持新標(biāo)準(zhǔn)的c編譯器太少,為了保持程序的可移植性,還是按舊標(biāo)準(zhǔn)把局部變量定義在每個(gè)函數(shù)的開(kāi)頭好了