c語言定義變數位置
㈠ c語言 關於定義變數的位置的疑問,下面有詳細補充,求教
因為你score是在之前定義的,那時候還沒有定義i,要在使用變數前定義才可以的。
㈡ 定義全局變數的位置C語言
全局變數可以定義在任何位置, 只要不被包含在任何函數內即可.
理論上作用域是整個項目.
但如果不做聲明情況下, 作用域為定義位置到所在文件尾.
每增加一個聲明, 作用域會擴展從聲明位置到該文件尾范圍.
㈢ C語言變數的定義可以放在函數中任意位置嗎
不可以放在函數中任意位置
C語言語法規定任意變數的定義,都必須在最開始的地方聲明
㈣ c語言位變數定義
在c語言中定義bit型變數,可以使用位域來自定義。
位域的定義和位域變數的說明位域定義與結構定義相仿,其形式為:
struct 位域結構名
{ 位域列表 };
其中位域列表的形式為: 類型說明符 位域名:位域長度;
示例:通過位域來計算IEEE754浮點數標准中,單精度浮點數的最大值、最小值以及最小弱規范數。
#include <stdio.h>
typedef struct FP_SINGLE
{
unsigned __int32 fraction : 23;
unsigned __int32 exp : 8;
unsigned __int32 sign : 1;
} fp_single;
int main()
{
float x;
fp_single * fp_s = (fp_single *)&x;
fp_s->sign = 0;
fp_s->exp = 0xfe;
fp_s->fraction = 0x7fffff;
printf ("float 最大數: %le\n",(double)x);
fp_s->sign = 0;
fp_s->exp = 0x1;
fp_s->fraction = 0x0;
printf ("float 最小數: %le\n",(double)x);
fp_s->sign = 0;
fp_s->exp = 0;
fp_s->fraction = 0x1;
printf ("float 最小弱規范數:%le\n\n",(double)x);
return 0;
}
㈤ C語言中的變數名可以在使用之前的任何位置進行定義,這句話為什麼錯
C語言的C89規范,只支持在作用域起始部分定義變數。就是如果在執行語句的後面定義變數就是錯的。
例如:
void
func(void)
{
int
a;//第一個定義,合法。
a=1;//執行一個語句。
int
b;//這個定義不在作用域起始處,編譯會報錯。
}
C99規范:局部變數可以定義在任何位置。
但是全面支持C99規范的編譯器很少。
㈥ 簡述在linux環境下進行C語言編程時,變數可以在什麼位置定義
C語言的變數
一般在函數的最開始部分
或者在文件的最上面,如果在其他文件要使用該變數,則可以在頭文件裡面聲明
㈦ C語言中的變數可以在使用之前任何位置進行定義嗎
理論上是可以在使用之前的任何位置進行定義的,但是一般情況下是定義在第一個語句之前的。當然了,這個第一個語句是相對的,如內層函數中的局部變數或者是臨時變數就是定義在內層函數的第一個語句之前的。
㈧ C語言中的變數可以在使用之前任何位置進行定義嗎
全局變數,可以在函數外任何位置定義。
局部變數的合法定義位置,依賴於編譯器遵循的C規范版本。
1、僅支持C89規范的編譯器,只支持在作用域起始部分定義變數。
比如:
voidfunc(void)
{
inta=1;//函數體起始位置。
if(a>0)//其實這個判斷沒有意義,僅為提供樣例。
{
intb=2;//判斷部分{}的起始位置。
printf("%d ",b);
}
}
如果寫成
voidfunc(void)
{
inta;//第一個定義,合法。
a=1;//執行一個語句。
intb;//這個定義不在作用域起始處,編譯會報錯。
}
二、支持C99或者部分支持C99的編譯器:
局部變數可以定義在任何位置。
之前的第二個例子中的定義方式,在這種編譯器下是合法的。
甚至部分支持C99全面的編譯器,支持
for(inta=0;a<100;a++)
在for中定義變數。
三、目前大多數編譯器,均支持任何位置定義變數,但僅有少部分支持for中定義變數,所以在編碼時,不建議for中定義,會降低可移植性。
㈨ C語言 變數定義的位置
把floar改為float之後本人使用VS2005調試沒有任何問題,先輸入一個數,回車再輸入一個數,最後正確輸出結果。
你可以把scanf("%f%f",&r,&h);改一下scanf("%f,%f",&r,&h);在%f之間加個逗號,輸入的時候在兩個數之間加個逗號,也就是1,2.0這樣,然後再試試。如果還是不行,就可能是你的編譯器有問題,有可能是所謂的第一個輸入語句不能在printf之後的毛病吧。
㈩ 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 標准)中,變數只能在程序的開頭定義,或者說變數定義的前面不能有其他非聲明或非定義的語句。
(10)c語言定義變數位置擴展閱讀:
在主回答中,提到了變數定義時,變數名通常都是用字母、數字與下劃線組合而成,但是實際上,變數名也不是隨便組合的,變數定義需要遵循一定的規范,否則容易產生歧義,影響整體程序代碼 的可讀性。
所以在定義變數的時候,要注意以下命名規范:
(1)、變數名的開頭必須是字母或下劃線,不能是數字。實際編程中最常用的是以字母開頭,而以下劃線開頭的變數名是系統專用的。命名應當直觀且可以拼讀,可望文知意,便於記憶和閱讀。
標識符最好採用英文單詞或其組合,不允許使用拼音。程序中的英文單詞一般不要太復雜,用詞應當准確。
(2)、變數名中的字母是區分大小寫的。比如 a 和 A 是不同的變數名,num 和 Num 也是不同的變數名。當標識符由多個片語成時,每個詞的第一個字母大寫,其餘全部小寫。
比如: int CurrentVal;
這樣的名字看起來比較清晰,遠比一長串字元好得多。
(3)、變數名絕對不可以是C語言關鍵字,不能有空格。
(4)、變數名的長度應當符合「min-length && max-information」原則。
C 是一種簡潔的語言, 命名也應該是簡潔的。例如變數名MaxVal 就比MaxValueUntilOverflow 好用。標識符的長度一般不要過長,較長的單詞可通過去掉「母音」形成縮寫。
另外,英文詞盡量不縮寫,特別是非常用專業名詞,如果有縮寫,在同一系統中對同一單詞必須使用相同的表示法,並且註明其意思。