c語言中有關區域性常量的定義,C語言中是如何定義常量的啊

2022-05-31 00:50:04 字數 5754 閱讀 6367

1樓:藤覺由從雪

第乙個錯誤是:預編譯定義#defineca應該放在函式的外面,而且是程式檔案的開頭,而你把它放在函式內部了;

第二個錯誤是:定義陣列

ints[c]

時,陣列長度必需用常量,在這裡,c雖然貌似是個常量,但先不說c本身的定義是錯的,而它所代表的卻是a,而a是變數,所以是錯誤。

改正之後的結果應該是:

#include

#include

#include

#definec3

main()

;b=c;

printf("%d",b);

}記住,在c語言中,永遠不要試圖用變數來定義陣列的長度,即使是間接做也是不可能的,變數的性質你無法消滅

2樓:吉祥二進位制

在c語言中,常量的儲存位置,永遠不會是區域性的。事實上,c語言中所有的常量都儲存在全域性記憶體區中。比如

void f()

3樓:匿名使用者

看來你的c語言知識相當有限,c語言不允許這樣定義陣列,你的相法應該用malloc函式實現:

#include

int main(void)

4樓:匿名使用者

沒有必要啊

你只需要在開頭定義乙個夠長的陣列;

然後在後面需要對陣列賦值或者輸出時,用迴圈語句控制操作長度就行了啊!

5樓:

c語言中規定申請陣列時陣列的大小必須是乙個常數,不然就得用動態分配。你那個n是乙個區域性的變數,既然不是常數肯定會出現那個編譯錯誤了

6樓:

那就搞乙個結構體,只定義乙個int型成員!

malloc你那n個空間就好,一回事

7樓:

找乙個支援c99標準的編譯器就可以了,如gcc 編譯時加引數std=c99

8樓:匿名使用者

c語言不允許用變數定義陣列長度

9樓:

當然會unknown size ,因為你定義的時候,並沒有說這個陣列a有多大,電腦怎麼給你分配空間?? 去網上搜搜malloc,你會找到答案的

c語言中是如何定義常量的啊

10樓:劉世媛

我們在用c程式設計時有時需要定義不變的變數,即常量,有兩種方法。

例如:定義常量pi的兩種方式:

1. #define pi 3.1415926f;

2. const float pi 3.1415926f;

常量有整型常量、浮點型常量、字元型常量及字串常量。 『常量定義是指定義符號常量,用乙個識別符號來代表乙個常量,通過巨集定義預處理指令來實現。

格式:#define識別符號常量

由使用者命名的識別符號是符號常量名。作為符號常量名,一般大寫。一旦定義,在程式中凡是出現常量的地方均可用符號常量名來代替。

對使用了符號常量的程式在編譯前會以實際常量替代符號常量。

全域性變數和區域性變數的區別:

11樓:匿名使用者

#define count 60

這叫巨集定義,不叫常量

常量的定義:

const int count = 60;

形參指定型別,實參指定數值

12樓:天雲一號

c語言定義常量常用的方法有以下2種:

第一種:巨集定義

#define n 3  // 定義了乙個常量為3的巨集n,在程式中n就代表3

第二種:給變數初始化賦值

int a = 2;  // 定義了乙個int型變數,並賦值為2,其實這是用變數來定義常量

注:定義常量還是用巨集定義的比較多。

13樓:匿名使用者

常量的定義:

#define count 60

這就定義了乙個常量 count 它的值是乙個常量60 在整個程式中不變

關於實際引數和,形式引數:

可以這樣通俗的去理解:

主調函式中的引數是實際引數,被調函式中的引數是形式引數,比如說:如下**段

被調函式:

int max(int a,int b)

主調函式:

main()

在北調函式max(int a,int b)中a,b是形式引數在主函式中max(a,b)中的a,b是實際引數;

14樓:匿名使用者

可以用預處理命令#indefine

和const靜態定義個數便是常量

形參就是函式定義時,所給的引數;而實參就是在main函式中呼叫時所使用的引數,兩者可以相同也可以不相同。

15樓:匿名使用者

實參在主調函式中,形參在被調函式中

當使用的是值傳遞方式時,實參值傳遞給形參,但是形參不把值傳回實參,即單向傳遞。

當使用位址傳遞時,實參位址傳遞給形參,形參把位址傳回實參,是雙向傳遞。

16樓:

#define

定義在全域性區

17樓:☆行雲流水

#define count 100

實參在主調函式中,形參在被調函式中

c語言中的靜態區域性變數的定義

18樓:匿名使用者

簡單跟你說說吧,靜態變數是放靜態區的,程式結束後os會自動**記憶體的,不用你操心。而區域性變數不用我說了吧,簡單理解成:在大括號中的都是區域性變數,放棧區,static是靜態變數的標示符。

;這裡的a,b,sum,i都是靜態區域性變數。如果你不寫static的話,就是動態區域性變數(預設就是動態的),或者你寫auto也是動態區域性變數。執行到大括號末尾的時候,這幾個變數會從記憶體中消失的。

如果你不是寫在大括號中,而是寫在外面的,就是全域性變數,加上static就是私有的全域性變數。

其實你這個問題問得挺幼稚的。。。。

滿意請採納,謝謝

c語言中的全域性變數和區域性變數分別是指什麼?

19樓:徒步一光年

根據使用範圍來區分的。

1。區域性變數

他是 指在函式內部定義的變數 作用域為定義區域性變數的函式 也就是說他只能在定義他的函式中使用

最值得注意的是 只有在程式執行到定義他的模組時才能生成,一旦執行退出該模組則起變數消失

eg.func ()

2。全域性變數

在程式執行的過程中一直有效

eg.int x=1;

func ()

func1 ()

main ()

由此不難看出整型x的作用範圍

對於全域性變數 如果在定義的時候不做初始化 則系統將自動為起賦值 數值型為0

字元型為空'\0'

全域性變數的弊端 增加記憶體開銷 降低函式的通用性

定義全域性變數時 理想的位置是在檔案的開頭 當這些函式以及同乙個程式中的其他源程式檔案中的某些函式需要使用該全域性變數時 在函式內部對該變數使用extern 加以說明 說明他是外部的

(這裡還要做詳細的講解)

eg.main ()

int a=1,b=2;

int min (x,y)

int x,y;

我還要說明的是 對外部變數的說明和對全域性變數的定義不是一回事

對外部變數的說明 只是宣告該變數是在外部定義過的乙個全域性變數 在這裡引用 而對全域性變數的定義則是要對起分配儲存單元的

乙個全域性變數只能定義一次 可是卻可以多次引用

*** 在同一原始檔中,全域性變數和區域性變數同名時,在區域性變數的作用域內,全域性變數不起作用的。

c語言中,乙個迴圈體算不算乙個區域性變數的定義範圍?

20樓:聽不清啊

c語言中,乙個迴圈體可以算乙個區域性變數的定義範圍的。

#include "stdio.h"

int main()

c語言的問題,高手進 static 在定義區域性變數時是否只能賦值一次,再次定義時就沒用

21樓:匿名使用者

static是靜態變數,只初始化一次,可以多次賦值。

22樓:我不廢了

static意思是靜態的。變數分常量和變數。只有常量只能賦值一次。是不是只能賦值一次是靠最後兩個字(即常量或者變數)來區分的。

static變數(如:static int n)即靜態變數。靜態變數也是變數,只有靜態常量才只能賦值一次。

變數只用定義一次。建議lz多看看基本語法。

23樓:無憂網事

a=4;

int f(int n )

//static變數在程式執行期間,只初始化一次。除了賦值操作外,變數                值不變!

else //同上

return t+=a+=;

24樓:

static的意思是函式第一次執行時對變數初始化,之後再呼叫就不再執行該變數初始化,而保留上一次執行的結果。

你函式裡面先宣告了static int a=5;後面又int a = 6;不是重複定義嗎?乙個變數可以定義兩次?

static int定義後程式裡的賦值有用,並且該賦值會保留,不會隨函式返回而失效,下一次呼叫時該變數值還是上一次最後的賦值結果而不是初始定義的值

25樓:匿名使用者

這裡有靜態區域性變數的詳細解釋

c語言 常量是什麼

26樓:古成風雲

是常量,,字串內雙引號裡的都是常量,

27樓:十四個矮子

有乙個很簡單的判斷方法,你只要判斷這個「量」是否能被賦值,不能被賦值的就是常量。

比如,100,我們不能說100=3,還有字串「abc」,我們也不能說「abc」=「x」,因此像字面值100,「abc」等都是常量。

以後還會有更複雜的,只要知道這個標準就很容易判斷了。

28樓:長得更高

a是變數,a=100只是給變數賦值,常量是數。

29樓:匿名使用者

在程式執行過程中,其值不發生改變的量稱為常量。常量分類:

說明:符號常量在使用之前必須先定義,其一般形式為:

#define 識別符號 常量

其中#define也是一條預處理命令(預處理命令都以"#"開頭),稱為巨集定義命令(在後面預處理程式中將進一步介紹),其功能是把該識別符號定義為其後的常量值。一經定義,以後在程式中所有出現該識別符號的地方均代之以該常量值。

30樓:匿名使用者

c語言常量的定義方法

常量是在程式運算過程中不變的量。 常量在程式中經常直接出現,如123、3.14159、『a』、「computer」,此時只要求它們符合相應型別資料的表示方法。相應於各種資料型別,有整型常量、浮點型常量、字元型常量及字串常量。

常量定義是指定義符號常量,用乙個識別符號來代表乙個常量,通過巨集定義預處理指令來實現。 格式:#define識別符號常量 由使用者命名的識別符號是符號常量名。

作為符號常量名,一般大寫。一旦定義,在程式中凡是出現常量的地方均可用符號常量名來代替。 對使用了符號常量的程式在編譯前會以實際常量替代符號常量。

C中有巨集定義嗎,在C 語言中怎麼定義類似於C言的巨集定義

public const int m 100 或internal const int m 100 沒有 有 const 變數 即常量 沒有,c 有const 常量或static 靜態變數 c中有巨集定義 c 中用 const 定義常量 請問怎樣在c 中實現類似c 中的巨集定義。不懂勿答!ms的編譯器...

在c語言中若有定義,在c語言中,若有定義inta1,b2,c3,d4,x5,y6,則表示式xa

inta 1,b 2,c 3,d 4,x 5,y 6 則表示式 x a b y c d a b 不成立 則為假為0,x 0.符號要求倆個都為真才輸出真,所以表示式為假等於0 在c語言中,若有定義 int y 3,x 7 1,2,3,4,5,6,7 則表示式y x 5 的值 為 求解釋。定義乙個整形陣...

c語言中,怎麼判斷常量是否合法,判斷C語言數值常量是否合法 為什麼不合法?

整型分字首 0 0x 和字尾 u l 每種進製中用的數字不同 浮點數字尾f l,指數表示注意是否在範圍內 字元與字串主要注意轉義字元後面是否合法 a 整數中不允許出現逗號 b 科學計數法表示1.5乘以10的2.0次方,由於科學計數法指數部分只能是整數。c 號是轉義符號後面要跟其他符號來表示具體字元,...