C語言中的常量是怎麼使用的,是不是通過巨集定義常量啊

2021-04-19 05:49:59 字數 5071 閱讀 5563

1樓:匿名使用者

對的!專家的推薦是這樣的:

1,對於數值和字元常量,用#define,注意新增必要注釋;版2,對於其它權

型別常量,用 const 限定符。

const 和 #define 的區別在於1、const 像變數一樣有範圍(作用域)、可見性等限制,一般來說好一點;

2、define常常出現意料之外的事情,因為他是靠替換,一般用於人為規定的值,取個巨集名非常重要!

僅供參考!

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

2樓:劉世媛

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

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

1. #define pi 3.1415926f;

2. const float pi 3.1415926f;

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

格式:#define識別符號常量

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

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

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

3樓:匿名使用者

#define count 60

這叫巨集定義,不叫常量

常量的定義:

const int count = 60;

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

4樓:天雲一號

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

第一種:巨集定義

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

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

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

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

5樓:匿名使用者

常量的定義:

#define count 60

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

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

可以這樣通俗的去理解:

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

被調函式:

int max(int a,int b)

主調函式:

main()

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

6樓:匿名使用者

可以用預處理命令#indefine

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

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

7樓:匿名使用者

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

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

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

8樓:

#define

定義在全域性區

9樓:☆行雲流水

#define count 100

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

在c語言中什麼叫巨集定義的常量

10樓:天雲一號

在c語言中,巨集定義的常量就是通過如下格式來定義的乙個不帶引數的常量:

#define 識別符號 字串

舉例說明如下:

#include

#define pi 3.14   // 巨集定義常量,即pi=3.14

void main()

11樓:匿名使用者

形如:#define pi 3.14159

pi就是乙個巨集定義的常量 等於3.14159

12樓:藍白的生活

常量只是巨集定義的一種,巨集定義還可以定義其他東西。

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

13樓:迠寋漧

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

第一種:巨集定義

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

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

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

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

c語言中為什麼用巨集定義乙個字元常量(乙個字母)可以賦值給字元變數,

14樓:匿名使用者

1、因為巨集定義實質是一種替換,雖然看起來是字元,實際上最終是被替換成其他常熟或者值。

2、巨集定義中的識別符號都採用大寫,這是程式設計中一種約定俗成的習慣:

1)巨集替換不做語法檢查,所以在使用的時候要格外小心2)巨集替換通常在檔案開頭部分,寫在函式的花括號外邊,作用域為其後的程式,直到用 問好

3)# u n d e f 命令終止巨集定義的作用域4)不要在字串中使用巨集,如果巨集名出現在字串中,那麼將按字串進行處理.

15樓:匿名使用者

因為巨集是乙個簡單替換,所以c語言中用巨集定義乙個字元常量(乙個字母)可以賦值給字元變數。實質是在編譯之前會把巨集替換掉,然後再編譯。

例如:#define  a    5

void main()

在編譯之前a已經被替換成5了,所以就可以賦值給num。

16樓:匿名使用者

漢字根據編碼方式不同,所佔的大小2~4個位元組不等,漢字賦值給字元變數,只顯示第乙個位元組,出問號就不奇怪了

用漢字賦值給字元數陣列然後在顯示的話,一定要考慮編碼方式問題,你的終端支援哪種就選擇哪種,否則亂碼

17樓:匿名使用者

#define namehello "wendy"

#include

#include

void main()

18樓:匿名使用者

c裡面不支援漢子,你用vc++6.0試試,那個可以顯示漢子

c語言中常量定義和巨集定義有什麼區別?

19樓:劉文正粉絲

區別大了個去了.

巨集定義是預處理命令.

#defien a 3

執行後, 預處理器把會正文所有全字匹配的a, 全部替換為3,那麼, 最後的**進入編譯器的**,

1 + a, 是變成1 + 3的.

而const int a = 3;

這個是不在預處理器的管理範圍之內 ,這個就是編譯器的工作了, 有些編譯器不會為它分配空間, 直接把它加入符號表中, 也就是說, 常量不再是0123456789這10個數, 而是0123456789a這11個數, 那麼a就是被定義成3了, 所以符號表裡的內容是01234567893.

而有些 編譯器會為它分配空間.

你不知道它們的區別, 說明你學巨集的時候, 並不知道巨集的原理.

20樓:金色潛鳥

巨集定義 是編譯前的預處理。

#define a 3 是在程式正式編譯前,做 token a 的字串替代,凡 token a 都用 3替代, 替代完了再開始編譯。

const int a = 3; 是 變數宣告和初始化。只是強調了 a 是 常量,不能用來做 「左值」,即,數值不能改變。

21樓:匿名使用者

符號常量 #define pi 3.1415926f;

常值變數 const float pi 3.1415926f;

網頁鏈結

c語言中為什麼用巨集定義乙個字元常量(乙個字母)可以賦值給字元變數?

22樓:匿名使用者

1、因為巨集定義實質是一種替換,雖然看起來是字元,實際上最終是被替換成其他常熟或者值。

2、巨集定義中的識別符號都採用大寫,這是程式設計中一種約定俗成的習慣:

1)巨集替換不做語法檢查,所以在使用的時候要格外小心2)巨集替換通常在檔案開頭部分,寫在函式的花括號外邊,作用域為其後的程式,直到用 問好

3)# u n d e f 命令終止巨集定義的作用域4)不要在字串中使用巨集,如果巨集名出現在字串中,那麼將按字串進行處理.

23樓:關韶侍荏

因為巨集是乙個簡單替換,所以c語言中用巨集定義乙個字元常量(乙個字母)可以賦值給字元變數。實質是在編譯之前會把巨集替換掉,然後再編譯。

例如:#define a 5

void main()

在編譯之前a已經被替換成5了,所以就可以賦值給num。

c語言定義常量為什麼不建議用#define

24樓:匿名使用者

c語言的常量就bai是使用#define定義的。你是說duc++吧?zhic++的常量推薦使用const 定義,因為#define只是dao單純的字元專替換,無法檢查資料型別,屬const定義常量需指明資料型別,利於編譯器進行型別檢查。

25樓:匿名使用者

1、那是因bai為對於#define定義,編譯du器會存放在一zhi個記憶區dao域,這個記憶區域相當於我專們稱為巨集

屬為了不把有需要的裝進這個區域,我們只把有必要的,特殊的放進去2、當用#deifne定義的量是不能更改的,這樣就沒法迴圈使用了。

26樓:匿名使用者

這個,看常量型別,如果程式中大量使用且以後可能要經常改變這個常量的值,還是用#define比較方便,否則的話就沒有必要了!

27樓:知識哥哥

樓上的哥們 你用什麼定義的常量可以賦值呢?

28樓:匿名使用者

函式中不能再被重新賦值!

C語言中0349是常量嗎

c語言中0349不是乙個合法的常量。以0開始的數字,表示是乙個八進位制數,但八進位制數的每乙個字元都不大於7的。不是,0開頭,說明是八進位制數,八進位制數里沒有9出現 西遼人為什麼簞食壺漿,以迎蒙古大軍 1反抗屈出律 2蒙古軍中的許多契丹人肯定也起了溝通作用。3大石林牙早年在蒙古高原召集七州十八部,...

在c語言中什麼叫巨集定義的常量

在c語言中,bai巨集定義的常量就是du通過如zhi下格式來定義的乙個dao不帶引數的常量 define 識別符號版 字串權 舉例說明如下 include define pi 3.14 巨集定義常量,即pi 3.14 void main 巨集定義bai不佔記憶體空間,因為巨集du 在預處理zhi階段...

c語言中什麼是數的有效數字,C語言中什麼是乙個數的有效數字?

樓上誤解 樓主問的是c語言 不是數學 這要看你的機器型別和變數型別了 如果定義的是int型 那1234是有 版效數字 權 後面小數都是無效的 如果定義的是float型 那在限定位元組長度內都是有效數字不同機器型別也不一樣 int型有2個位元組 也有4個位元組的 在c語言中,bai乙個數的有效數du字...