適合初學(xué)者的C語言常量類型的講解
生活中有一些是可變的量(比如你的年齡,身高,體重,對象)
還有一些不變的量(比如圓周率,性別,身份證號碼)[哎,這里你說性別可變啊,我們只能笑一下,哈哈]
常量的定義
常量就是一個(gè)不變的量(比如圓周率,性別,身份證號碼)
C語言中的常量和變量的定義的形式有所差異。
常量的分類
C語言中的常量分為以下以下幾種:
- 1.字面常量
- 2.const 修飾的常變量
- 3.#define 定義的標(biāo)識符常量
- 4.枚舉常量
我們來演示一下
字面常量
字面常量,就是字面上就可以看出來的常量
int main()
{
//字面常量演示
3.14;//小數(shù)
1000;//整數(shù)
'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;
}
運(yùn)行結(jié)果:
10

當(dāng)我們在int a=100前加一個(gè)const來修飾
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
//const修飾的常變量演示
const int a=100;//在這兒
a=10;
printf("%d",a);
return 0;
}
運(yùn)行的結(jié)果:
運(yùn)行錯(cuò)誤,無實(shí)際輸出

我們可以知道,const如果修飾一個(gè)變量,再給變量換一個(gè)值是不被允許的,相當(dāng)于一個(gè)常量,但它還有變量的屬性,所以我們就叫它是const 修飾的常變量
為什么說它具有變量屬性呢?
我們來證明一下:
再新了解一個(gè)東西,數(shù)組,當(dāng)我們來寫代碼的時(shí)候,有時(shí)候需要寫很多的變量,很麻煩,這時(shí)候我們使用數(shù)組arr[ ],(a[ ],hin[ ]都隨便,自己起一個(gè)名),在數(shù)組的[ ]中只能放常量,比如arr[5],相當(dāng)于你直接定義了5個(gè)變量,里面是不能放變量的,根據(jù)這個(gè)原理我們來證明一下const 修飾的常變量是否具有變量屬性
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
const int a = 100;
int arr[10] = {0};
return 0;
}
可正常運(yùn)行
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
const int a = 100;
int arr[a] = {0};
return 0;
}
運(yùn)行結(jié)果:
出現(xiàn)了錯(cuò)誤,說明const 修飾的常變量具有變量屬性

我有一個(gè)大佬(我認(rèn)為的大佬,哈哈哈)是這樣理解的:假設(shè)變量是一個(gè)空間,常量是一個(gè)實(shí)際值,變量用來容納常量,const只是鎖定了值,但是并不是把空間變成數(shù)值
#define 定義的標(biāo)識符常量
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define MAX 100//here
int main()
{
printf("%d\n",MAX);
int a=MAX;
printf("%d\n",a);
return 0;
}
運(yùn)行的結(jié)果:
100
100

可以看出來,MAX被定義為了100,無論是直接打印還是給變量一個(gè)值都可以,想用的時(shí)候就可以拿出來使用,這個(gè)MAX就是標(biāo)識符常量,也就是#define 定義的標(biāo)識符常量。(#define也是可以定義一個(gè)字符串的,不局限于數(shù)字)
枚舉常量
我生活中一些值是可以一一列舉出來的,比如性別,我們初步來了解一下,畢竟只是初始c語言,
#include <stdio.h>
enum Sex
{
MALE,//男
FEMALE,//女
SECRET//不確定
};
//enum Sex未來的可能取值就是MALE,FEMALE,SECRET,它們?nèi)齻€(gè)就是枚舉常量
int main()
{
//枚舉常量演示
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
//注:枚舉常量的默認(rèn)是從0開始,依次向下遞增1的
注意,這里enum Sex里面三個(gè)枚舉常量并不開辟空間,而且也是不能改變的,改變就會報(bào)錯(cuò)
到此這篇關(guān)于適合初學(xué)者的C語言常量類型的講解的文章就介紹到這了,更多相關(guān)C語言 常量類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Visual Studio Code (VSCode) 配置搭建 C/C++ 開發(fā)編譯環(huán)境的流程
記得N年前剛開始接觸編程時(shí),使用的是Visual C++6.0,下面這個(gè)可愛的圖標(biāo)很多人一定很熟悉。不過今天想嘗鮮新的工具 Visual Studio Code 來搭建C/C++開發(fā)環(huán)境,感興趣的朋友一起看看吧2021-09-09
C語言利用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)學(xué)生成績管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言利用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
C語言數(shù)據(jù)類型和格式說明符基礎(chǔ)教程示例
這篇文章主要為大家介紹了C語言數(shù)據(jù)類型和格式說明符基礎(chǔ)教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
C語言用棧實(shí)現(xiàn)十進(jìn)制轉(zhuǎn)換為二進(jìn)制的方法示例
這篇文章主要介紹了C語言用棧實(shí)現(xiàn)十進(jìn)制轉(zhuǎn)換為二進(jìn)制的方法,結(jié)合實(shí)例形式分析了C語言棧的定義及進(jìn)制轉(zhuǎn)換使用技巧,需要的朋友可以參考下2017-06-06
Qt模仿Windows文件夾縮略圖的三種實(shí)現(xiàn)方式
本文講的不是簡單的model/view或者widget的或者QML的基礎(chǔ)框架實(shí)現(xiàn),而是在這些框架之上的肉(文件夾縮略圖)的效果實(shí)現(xiàn),本文將以QWidget、Qt Quick(QML)、以及QGraph三種實(shí)現(xiàn)方式來講解,如何做出和Windows類似的縮略圖,需要的朋友可以參考下2024-04-04
C++實(shí)現(xiàn)猜數(shù)小游戲的實(shí)現(xiàn)
這篇文章主要介紹了C++實(shí)現(xiàn)猜數(shù)小游戲的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02

