❶ c語言的變數定義
C語言中變數遵循「先定義後使用」的原則:
1、定義變數的格式:數據類型 變數名;
首先要強調的一點是:變數的定義是一條語句,每條語句都是以分號結尾的。故定義完變數,後面不要漏掉「;」分號。
在變數定義中,「數據類型」表示想要存儲什麼類型的數據就定義什麼類型的變數。
如想要存儲整數就定義成 int 型;想要存儲小數就定義成 float 型或 double 型;想要存儲字元就定義成 char 型等等。
「變數名」就是你想給這個變數起個什麼名字,通常都是用字母、數字與下劃線組合而成。比如:
「int i;double price;double goods_price2」等等。
就表示定義了一個整型變數 i、小數型變數price、goods_price2;
2、變數定義完成後,接下來就是使用變數,為變數賦值。
將一個值放到一個變數中,這個動作叫「賦值」。通俗點講,「給變數賦值」意思就是將一個值傳給一個變數。
賦值的格式是:
變數名 = 要賦的值;
它的意思是將=右邊的數字賦給左邊的變數。比如:
i = 3;
這就表示將 3 賦給了變數 i,此時 i 就等於 3 了。
3、變數的定義和賦值,可以分成兩步寫,也可以將它們合成一步,而且事實上,在實際編程中用得最多的也是合二為一的寫法。
形式如下:
數據類型 變數名 = 要賦的值;
比如:int i = 3;
就表示定義了一個變數 i,並把 3 賦給這個變數。它與
int i;
i =3;
是等價的。
在定義變數時也可以一次性定義多個變數,比如:
int i, j;
這就表示定義了變數 i 和 j。這里需要強調的是,當同時定義多個變數時,變數之間是用逗號隔開的,千萬別寫成分號。這是很多新手最容易犯的錯誤,即將逗號和分號記混了。
同樣也可以在定義多個變數的同時給它們賦值:
int i = 3, j = 4;
中間還是用逗號隔開,最後別忘記輸入分號。
最後需要注意的是,在較老的 C89/C90 標准(也稱 ANSI C 標准)中,變數只能在程序的開頭定義,或者說變數定義的前面不能有其他非聲明或非定義的語句。
(1)c語言找不到定義的變數擴展閱讀:
在主回答中,提到了變數定義時,變數名通常都是用字母、數字與下劃線組合而成,但是實際上,變數名也不是隨便組合的,變數定義需要遵循一定的規范,否則容易產生歧義,影響整體程序代碼 的可讀性。
所以在定義變數的時候,要注意以下命名規范:
(1)、變數名的開頭必須是字母或下劃線,不能是數字。實際編程中最常用的是以字母開頭,而以下劃線開頭的變數名是系統專用的。命名應當直觀且可以拼讀,可望文知意,便於記憶和閱讀。
標識符最好採用英文單詞或其組合,不允許使用拼音。程序中的英文單詞一般不要太復雜,用詞應當准確。
(2)、變數名中的字母是區分大小寫的。比如 a 和 A 是不同的變數名,num 和 Num 也是不同的變數名。當標識符由多個片語成時,每個詞的第一個字母大寫,其餘全部小寫。
比如: int CurrentVal;
這樣的名字看起來比較清晰,遠比一長串字元好得多。
(3)、變數名絕對不可以是C語言關鍵字,不能有空格。
(4)、變數名的長度應當符合「min-length && max-information」原則。
C 是一種簡潔的語言, 命名也應該是簡潔的。例如變數名MaxVal 就比MaxValueUntilOverflow 好用。標識符的長度一般不要過長,較長的單詞可通過去掉「母音」形成縮寫。
另外,英文詞盡量不縮寫,特別是非常用專業名詞,如果有縮寫,在同一系統中對同一單詞必須使用相同的表示法,並且註明其意思。
❷ 關於C語言定義變數的問題
可以是可以的,但定義的變數只能在 if 函數中使用,
如:
if(1)
{
int b=5;
printf("%d",b);
}
可輸出b的值,但如果是:
if(1)
{
int b=5;
}
printf("%d",b);
則會報錯:變數b沒有定義。
❸ c語言中怎樣定義變數的語言
1、記住一條就夠了:在函數之外定義的變數就是全局變數。用static修飾的變數可以是全局的,也可以是局部的,所以說「用static修飾的變數是全局變數」是錯誤的。用static修飾的變數的生命周期與全局變數一樣,但可見性仍分全局和局部。
2、全局變數在整個c文件中都能使用,而局部變數在其作用域內才能使用,舉個例子:
1
2
3
4
5
6
7
8
9
10
11
int f = 7;// 這個是全局變數
int myadd(int a, int b)
{
int c = a + b;// c是局部變數,只能在myadd中使用
return c;
}
int main(void)
{
printf("%d\n", c);// 因為c是myadd中定義的局部變數,這里會報錯。
printf("%d\n", f);// f是全局變數,這句是正確的。
}
❹ C語言的定義變數問題
auto
(1)auto關鍵字在C語言中只有一個作用,那就是修飾局部變數。
(2)auto修飾局部變數,表示這個局部變數是自動局部變數,自動局部變數分配在棧上。(既然在棧上,說明它如果不初始化那麼值就是隨機的······)
(3)平時定義局部變數時就是定義的auto的,只是省略了auto關鍵字而已。可見,auto的局部變數其實就是默認定義的普通的局部變數。
❺ C語言變數定義
C語言中變數遵循「先定義後使用」的原則:
1、定義變數的格式:數據類型 變數名;
首先要強調的一點是:變數的定義是一條語句,每條語句都是以分號結尾的。故定義完變數,後面不要漏掉「;」分號。
在變數定義中,「數據類型」表示想要存儲什麼類型的數據就定義什麼類型的變數。
如想要存儲整數就定義成 int 型;想要存儲小數就定義成 float 型或 double 型;想要存儲字元就定義成 char 型等等。
「變數名」就是你想給這個變數起個什麼名字,通常都是用字母、數字與下劃線組合而成。比如:
「int i;double price;double goods_price2」等等。
就表示定義了一個整型變數 i、小數型變數price、goods_price2;
2、變數定義完成後,接下來就是使用變數,為變數賦值。
將一個值放到一個變數中,這個動作叫「賦值」。通俗點講,「給變數賦值」意思就是將一個值傳給一個變數。
賦值的格式是:
變數名 = 要賦的值;
❻ 請問一下c語言沒有定義變數(c語言中沒有的頭文件)怎麼解決
我放大了,你的函數沒寫錯
【規則1-2-2】用 #include <filename.h> 格式來引用標准庫的頭文件(編譯器將從標准庫目錄開始搜索)。
【規則1-2-3】用 #include 「filename.h」 格式來引用非標准庫的頭文件(編譯器將從用戶的工作目錄開始搜索)。 你試試雙引號呢
❼ C語言函數中定義變數的問題
靜態變數,特點就是只初始化一次。所以在這里b是只定義一次的。
於是
1 會佔用,但是很少。 和全局變數定義差不多
2 沒有,因為不存在多次定義,只定義了一次。
3 除了生命周期,最大的差別就是作用域了。
局部變數,只能在函數內訪問,而全局變數就是誰都能訪問,這樣很容易出現混亂,尤其是多線程的情況下。
除此外,非靜態的局部變數,在函數退出後內存就釋放了,如果所有變數都定義成全局的,那明顯是對內存的一種浪費。
❽ keil c語言已經定義變數老是提示沒定義
#defineintcodea[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}
錯誤的地方太多了。首先上面這句的#define去掉。
其次在keil裡面聲明語句必須在所有賦值語句之前,想這句
inti=0;
必須放到main函數的第一句。
其它的有沒有還沒有細看。
❾ C語言 變數定義的位置
C++中,變數定義可以在函數中的任意位置。
比如函數中任意位置出現的For循環中:
for(inti=0;i<len;i++){
/*dosomething;*/
}
變數i就可以在使用到的地方才給定義;
然而在C語言中,變數的定義一定要在函數體的最開始處;
否則在使用到變數的地方才定義,編譯的時候會報不認識此變數。
❿ c語言變數定義的位置問題
以花括弧{}給包圍起來的代碼段稱為block(我不知道它的准確中文翻譯是不是叫模塊),只要在block開始的地方定義變數就不會錯,且該變數的作用域和生存期(除了static限定)只在該block里,且該變數可以屏蔽block外的變數.譬如在block外已經有一個變數名為a = 1的int變數,在block里允許定義一個同名的變數int a = 2,但在block里試著用printf列印的話,會發現printf("%d", a)結果是2.這就叫做屏蔽外面的變數!