c語言中巨集跟常變數的定義有什麼區別

2021-06-21 04:07:26 字數 2396 閱讀 8433

1樓:匿名使用者

c當中是沒有常變數的,也就是定義的變數賦值了常數但是仍然可以改變值;c++裡邊才有常變數,定義同時初始化,以後就不能改變值了。

c中的巨集定義就是一種替換,**上的複製替換,可以這樣理解,define a 12345就是凡是a出現的地方都用12345替換,當然巨集替換就不止數值,還可以到字串、函式表示式上去。替換的部分是預定義,經過編譯後才會替換掉,並且對a是沒有分配儲存空間的,其實也沒必要,都全部替換了。

2樓:木子小三

1.巨集定義不是c語句,末尾不加分號;

2.巨集定義是在預編譯時處理的;

3.巨集定義不做正確性檢查;

4.最主要的,巨集定義只是做字元替換,不分配記憶體空間。

也就是說define a 3 只是用a來表示3,並沒有一個實實在在的a在**,而int a=3; 是有一個常量a被儲存起來了。

3樓:匿名使用者

巨集是預處理的一種,用於替換;

常量還是要佔地址空間的

4樓:yl一個人的路

巨集可以在整個程式中引用,常變數只能在本函式內使用。

5樓:匿名使用者

巨集用define定義,運算時是原樣帶入,變數就不多說了……

6樓:倒黴熊

dedine是巨集定義

定義過的變數在執行過程用相對應的巨集定義代替const是定義常量,被定義過的常量在執行過程中值不能改變!!!

const進行型別檢查,而define沒有,容易產生錯誤.

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

7樓:劉文正粉絲

區別大了個去了.

巨集定義是預處理命令.

#defien a 3

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

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

而const int a = 3;

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

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

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

8樓:金色潛鳥

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

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

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

9樓:匿名使用者

符號常量 #define pi 3.1415926f;

常值變數 const float pi 3.1415926f;

網頁連結

c語言裡符號常量和常變數有什麼區別?

10樓:楊塵一

符號常量與常變數的區別:符號常量不佔用記憶體空間,在預編譯時就全部由符版號常量的值替換了,而常變數佔用權記憶體空間,也有資料型別,但是此變數在存在期間是不能重新賦值的。

1、常變數a的定義如下:

const int a = 5;

2、符合常量pi的定義如下:

#define b=3.1;

11樓:四角瑪

符號常量 是編譯前有前處理器處理的

#define pi 3.1415926

#define 是一條預處理命令, 就是出現符號常量pi的地版方用後面的數字替換隻

權是簡單地替換

然後進入編譯器

而常變數由編譯器處理,分配記憶體空間,有資料型別,可以和變數一樣使用,但不可以改變值!

const float pi=3.14159;

c語言中定義常數變數怎麼定義 用define的那種

12樓:

因為來define是一種巨集定義,源所以他屬於一種全域性型別,不需要在函式中定義,只要在源**開頭定義的話,整個原始檔都可以使用該變數,假如要要定義常數π,那就#define pi 3.1415926就可以了

例如#include

#define pi 3.1415926

int main(...)

void function(...)

有不懂追問吧,望採納

13樓:百小烏

#define pi 3.1415926

C語言的巨集定義是什麼,在C語言中巨集定義是什麼?

巨集定義又稱為巨集代換 巨集替換,簡稱 巨集 是c提供的三種預處理功能的其中一種。1 巨集名一般用大寫。2 使用巨集可提高程式的通用性和易讀性,減少不一致性,減少輸入錯誤和便於修改。例如 陣列大小常用巨集定義。3 預處理是在編譯之前的處理,而編譯工作的任務之一就是語法檢查,預處理不做語法檢查。4 巨...

c語言全域性變數的定義,C語言中如何定義全域性變數

在所有函式外部定義的變數稱為全域性變數 global variable 它的作用域預設是整個程式,也就是所有的原始檔,包括 c 和 h 檔案。例如 int a,b 全域性變數 void func1 todo float x,y 全域性變數 int func2 todo int main todo r...

c語言中定義有元素的整型陣列,C語言中,定義一個有100個元素的整型陣列inta100,然後用迴圈產生100個隨機數求大神幫助

include include int main 注意,編譯文 du件字尾必zhi須是.c檔案。希望採dao納 c語言如何srand和rand函式產生10個1 100內的隨機數 需要準備的材料分別有 電腦 c語言 編譯器。1 首先,開啟c語言編譯器,新建一個初回始.cpp檔案,例如答 test.cp...