當前位置:首頁 » 編程語言 » c語言的常量和宏變數區別
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言的常量和宏變數區別

發布時間: 2022-11-29 23:45:48

『壹』 如何理解C語言常量和變數

  對於基本數據類型量,按其取值是否可改變又分為常量和變數兩種。在程序執行過程中,其值不發生改變的量稱為常量,其值可變的量稱為變數。它們可與數據類型結合起來分類。例如,可分為整型常量、整型變數、浮點常量、字元常量、字元變數、枚舉變數、枚舉變數。在程序中,直接常量是可以不經說明而直接引用的,而符號常量和變數則必須先定義後使用。

  1、C語言常量和符號常量

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

    1.1直接常量(字面常量):

    整型常量:12、0、-3;

    實型常量:4.6、-1.23;

    字型常量:『a』、『b'。

    1.2符號常量

    標識符:用來標識變數名、符號常量名、函數名、數組名、類型名、文件名的有效字元序列。

    符號常量:用標識符代表一個常量。在C語言中,可以用一個標識符來表示一個常量,稱之為符號常量。

    符號常量在使用之前必須先定義,其一般形式為:#define 標識符  常量其中#define也是一條預處理命令(預處理命令都以"#"開頭),稱為宏定義命令(在後面預處理程序中將進一步介紹),其功能是把該標識符定義為其後的常量值。一經定義,以後在程序中所有出現該標識符的地方均代之以該常量值。

    習慣上符號常量的標識符用大寫字母,變數標識符用小學字母,以示區別。

    例3.1  符號常量的使用。

    #define PRICE 30main() {

        int num,total;

        num=10;

        total=num*PRICE;

        printf('total=%d",total);

    }

    用標識符代表一個變數,稱為符號常量。

    符號常量與變數不同,它的值在其作用域內不能改變,也不能再被賦值。

    使用符號常量的好處是:含義清楚;能做到「一改全改」。

  2、C語言變數

      其值可以改變的量稱為變數。一個變數應該有一個名字,在內存中占據一定的存儲單元。變數定義必須放在變數使用之前。一般放在函數體的開頭部分。要區分變數名和變數值是兩個不同的概念。

『貳』 C語言中常量與變數到底有什麼區別

變數和常量都是內存中的一塊區域,我們先不管區域有多大,只需要知道對於常量這塊區域,我們在得到這塊區域的使用權時就給它存入了一些數據,這些數據在程序運行期間是不能被改變的,如果強行給它別的數據就會程序出錯。對於變數這塊區域,我們可以根據自己的需要,隨時可以將不同的數據放進去,這是合法的操作,當然這些不同的數據,類型得是一樣的。

『叄』 const常量和宏變數的區別

define宏定義和const常變數區別:
1.define是宏定義,程序在預處理階段將用define定義的內容進行了替換。因此程序運行時,常量表中並沒有用define定義的常量,系統不為它分配內存。const定義的常量,在程序運行時在常量表中,系統為它分配內存。
2.define定義的常量,預處理時只是直接進行了替換。所以編譯時不能進行數據類型檢驗。const定義的常量,在編譯時進行嚴格的類型檢驗,可以避免出錯。
3.define定義表達式時要注意「邊緣效應」,例如如下定義:
#define N 2+3 //我們預想的N值是5,我們這樣使用N,int a = N/2; //我們預想的a的值是2,可實際上a的值是3。原因在於在預處理階段,編譯器將 a = N/2處理成了 a = 2+3/2;這就是宏定義的字元串替換的「邊緣效應」因此要如下定義:#define N (2+3)。const定義的表達式則沒有上述問題。const定義的常量叫做常變數原因有二:const定義常量像變數一樣檢查類型;const可以在任何地方定義常量,編譯器對它的處理過程與變數相似,只是分配內存的地方不同。

『肆』 C語言中#define宏定義和變數定義的聯系和區別

#define宏定義的量是做常量處理的,如#define
price
30,下文只要遇到price就代表常量30,他與變數的區別之一是在書出語句中printf(「%d」,a)(a為變數),這是合法的;但如果出現printf(「%d」,price)這就是不合法的。另外宏語句在整個程序中有效,而變數只在某個函數內有效。

『伍』 C語言中,變數跟常量的區別,舉一些例子 好理解,謝謝!!!

常量一般是指通過宏定義、const修飾而得到的,另外,像1,10,1.25f,1.36d這樣的數值也是常量。PS:後面的f,d表示該數值是float,double類型的,欲知更多有關這方面的只是,請參考《C primer plus》。
e.g. #define MAX 32767 //這樣就通過宏定義了一個MAX常量
const int MAX 32767; //通過const關鍵字修飾符定義了一個整形常量MAX
const float PAI 3.1415926; //通過const關鍵字修飾符定義了一個浮點型常量PAI
char *const ptr = 0x12345678; //通過const關鍵字修飾符定義了一個指針常量

除了以上情況,在C語言中見到的除函數名,關鍵字等以外的合法標識符,均為變數標識符。

區別:常量是定義時可以對其設置值(數值常量除外),而在其後的任何時刻都不可以改變其值的量。
變數是可以在定義後的任何時刻改變其值的量。

希望以上的回答對你有幫助,祝好!

『陸』 【C語言】變數/常量/宏定義

變數和常量是程序處理的兩種基本數據對象

變數的意義就是確定目標並提供存放的空間。

1.變數名只能是英文字母(A-Z,a-z)和數字(0-9)或者下劃線 _ 組成。
2.第一個字母必須是字母或者下劃線開頭。
3.變數名區分大小寫。
4.不能使用關鍵字來命名。
-關鍵字列表

1.char
-字元型,佔用一個位元組。
2.int
-整型,通常反映了所用機器語言中整數的最自然長度。
3.float
-單精度浮點型。
4.double
-雙精度浮點型。

數據類型 變數名
-int a
-char b
-float c
-double d

1.整型常量:520、1314、123
2.實型常量:3.14、5.12、8.97
3.字元常量:
-普通字元:'L','O','v','e'
-轉義字元:'\n','\t','\b'
4.字元串常量:"demo"
字元:'A','b'
字元串:'Hello world' 編譯器在編譯的時候會給他加上一個轉義字元 '\0' 空字元表示字元串的結束,故這個字元串有12個字元。
5.符號常量:使用前必須先定義
-定義符號常量 (宏定義)
格式:#define 標識符 常量
例如:

標識符(identifier)【有意思的是標識符念作biao fu】
1.標識符只能是英文字母(A-Z,a-z)和數字(0-9)或者下劃線(_)組成。
2.必須以字母或下劃線開頭。
3.標識符區分大小寫。
4.不能使用關鍵字來命名標識符。

『柒』 C語言中的常量和宏定義是同一個意思嗎

C語言中的常量是在定義時用const來指示的,是由編譯器處理的,而宏定義是由預處理器處理的,編譯器根本看不到,嚴格來說宏定義不應該是C語言的組成部分。

『捌』 C語言怎麼區分常量和變數

常量,有兩種方法定義。一種是用宏 #define a 3 那麼編譯之前a就都會被3替換掉
第二種是在定義變數前面加const 。如const int a=3; 這是一個不可改變值的變數。
所以。。。就可以知道哪些是常量了。看定義。。
不知道是不是常量可以在那個單詞上點右鍵然後選轉到定義就可以看到了
另外,常量通常所有字母大寫

『玖』 C語言中怎麼區分常量與變數

  • 一般普通變數:如123,3.5,"abc", 'a' 很容易識別

  • 以變數形式展現的,要看標識符的定義形式,才能確定該標識符是常量,還是變數,如:

    const int a=5 ; //常量 有const修飾,變數不能修改

    int b=34; //變數

  • #define 定義的宏,即不是常量也不是變數

『拾』 C語言中常量定義和宏定義有什麼區別

區別大了個去了.

宏定義是預處理命令.

#defien A 3
執行後, 預處理器把會正文所有全字匹配的A, 全部替換為3,

那麼, 最後的代碼進入編譯器的代碼,

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

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

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

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