C语言的常量问题

Posted 流浪孤儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言的常量问题相关的知识,希望对你有一定的参考价值。

字面常量与常变量

标识符常量

目录

一、字面常量与常变量

二、标识符常量

三、枚举常量


一、字面常量与常变量

贴代码:

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
void text();
int main()
{
	4;
	5;
	//这些都为字面常量
	
	/*int num = 4;//num为变量
	printf("%d\\n", num);
	num = 5;//num是变量可以更改值
	printf("%d\\n", num);*/

	const int num1 = 4;//const-常属性:即具有和常量一样的性质->不能修改!
	//const修饰的常变量
	//常变量:具有常属性的一个变量,本质还是变量
	printf("%d\\n", num1);
	//num1=5,这句语句要被注释掉不然会被报错,因为num1不能被修改
	text(num1);//调用text函数
	return 0;
}
void text(num1)//该函数可以验证num1本质上是否是变量
{
	int n = 10;
	//int arr[n] = {1};这句先注释掉,不然会报错:应输入常量表达式,而n是变量
	//int arr[num1] = { 1 };这句先注释掉,不然还是会报错:应输入常量表达式,num1本质还是变量
	int arr[10] = { 1 };//放入常量10就不会报错,说明字面常量是常量,而常变量虽然值不可修改但是
//本质上还是变量
}

标识符常量

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#define MAX 10//#define定义的标识符常量,后面没有分号

int main()
{
	int arr[MAX] = {0};//没有报错,MAX确实为常量
	printf("%d\\n",MAX);
	return 0;
}

枚举常量

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
/*
	枚举常量
	枚举---列举
	性别:男,女,保密
	枚举关键-enum
*/
enum Sex//enum为定义枚举类型的关键字
{
	MALE,
	FEMALE,
	SECRET
};//有分号
//MALE FEMALE SECRET为枚举常量
int main()
{
	enum Sex s = FEMALE;//s为枚举变量
	s = MALE;
	//MALE=10;这句会报错,枚举常量是不能改的,枚举变量可以改
	printf("%d\\n", MALE);//默认为0
	printf("%d\\n", FEMALE);//1
	printf("%d\\n", SECRET);//2
	return 0;
}

以上是关于C语言的常量问题的主要内容,如果未能解决你的问题,请参考以下文章

C语言代码片段

C语言符号常量定义

怎么把C语言中定义的符号变量替换为对应的常量?求代码

C语言 const常量讲解

c语言数值

c语言—栈区,堆区,全局区,文字常量区,程序代码区 详解