首頁 > 軟體

適合初學者的C語言常數型別的講解

2022-04-09 19:00:48

生活中有一些是可變的量(比如你的年齡,身高,體重,物件)

還有一些不變的量(比如圓周率,性別,身份證號碼)[哎,這裡你說性別可變啊,我們只能笑一下,哈哈]

常數的定義

常數就是一個不變的量(比如圓周率,性別,身份證號碼)

C語言中的常數和變數的定義的形式有所差異。

常數的分類

C語言中的常數分為以下以下幾種:

  • 1.字面常數
  • 2.const 修飾的常變數
  • 3.#define 定義的識別符號常數
  • 4.列舉常數

我們來演示一下

字面常數

字面常數,就是字面上就可以看出來的常數

int main()
{
    //字面常數演示
    3.14;//小數
    1000;//整數
    'w';//字元
    "abc";字串
  
   return 0;
}

const修飾的常變數

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>//使用printf記得加這條程式碼

int main()
{
    //const修飾的常變數演示
   int a=100;//我們等一會兒會改變它
   a=10;
   printf("%d",a);
   return 0;
}

執行結果:

10

當我們在int a=100前加一個const來修飾

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()
{
    //const修飾的常變數演示
   const int a=100;//在這兒
   a=10;
   printf("%d",a);
   return 0;
}

執行的結果:

執行錯誤,無實際輸出

我們可以知道,const如果修飾一個變數,再給變數換一個值是不被允許的,相當於一個常數,但它還有變數的屬性,所以我們就叫它是const 修飾的常變數

為什麼說它具有變數屬性呢?

我們來證明一下:

再新瞭解一個東西,陣列,當我們來寫程式碼的時候,有時候需要寫很多的變數,很麻煩,這時候我們使用陣列arr[ ],(a[ ],hin[ ]都隨便,自己起一個名),在陣列的[ ]中只能放常數,比如arr[5],相當於你直接定義了5個變數,裡面是不能放變數的,根據這個原理我們來證明一下const 修飾的常變數是否具有變數屬性

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()
{
	const int a = 100;
	int arr[10] = {0};
	return 0;
}

可正常執行

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()
{
	const int a = 100;
	int arr[a] = {0};
	return 0;
}

執行結果:

出現了錯誤,說明const 修飾的常變數具有變數屬性

我有一個大佬(我認為的大佬,哈哈哈)是這樣理解的:假設變數是一個空間,常數是一個實際值,變數用來容納常數,const只是鎖定了值,但是並不是把空間變成數值

#define 定義的識別符號常數

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

#define MAX 100//here

int main()
{
printf("%dn",MAX);
int a=MAX;
printf("%dn",a);
return 0;
}

執行的結果:

100

100

可以看出來,MAX被定義為了100,無論是直接列印還是給變數一個值都可以,想用的時候就可以拿出來使用,這個MAX就是識別符號常數,也就是#define 定義的識別符號常數。(#define也是可以定義一個字串的,不侷限於數位)

列舉常數

我生活中一些值是可以一一列舉出來的,比如性別,我們初步來了解一下,畢竟只是初始c語言,

#include <stdio.h>

enum Sex
{
    MALE,//男
    FEMALE,//女
    SECRET//不確定
};
//enum Sex未來的可能取值就是MALE,FEMALE,SECRET,它們三個就是列舉常數

int main()
{
    //列舉常數演示
    printf("%dn", MALE);
    printf("%dn", FEMALE);
    printf("%dn", SECRET);
    //注:列舉常數的預設是從0開始,依次向下遞增1的

注意,這裡enum Sex裡面三個列舉常數並不開闢空間,而且也是不能改變的,改變就會報錯

到此這篇關於適合初學者的C語言常數型別的講解的文章就介紹到這了,更多相關C語言 常數型別內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com