const 常量

使用 const 定义只读变量

第二种方法是将 Pi 定义为变量,但是告诉编译器,它的值是固定的,不能改变。

声明变量时,在变量前面加上 const 关键字,可以固化变量的值。例如:

const float Pi = 3.14159265f;                 //定义一个Pi的固定值变量Code language: JavaScript (javascript)

以这种方式定义 Pi 的优点是,Pi 是一个有指定类型的常量值。而前面的 #define PI 只是一个字符序列,在预处理阶段进行文本替换。

在 Pi 的声明中添加 const,如果之后在代码中试图去改变它的值,编译器会报错。

代码示例

#include <stdio.h>               

int main(void) 
{ 
	float radius = 0.0f; 
	float diameter = 0.0f;
	float circumeference = 0.0f;
	float area = 0.0f;
	const float Pi = 3.14159265f;
	
	printf("请输入圆桌的半径:");
	scanf("%f",&diameter);
	
	radius = diameter / 2.0f;
	circumeference = 2.0f*Pi*radius;
	
	//Pi = 3.14159f;  //这里尝试去修改,编译器会报错:assignment of read-only variable 'Pi'
	
	area = Pi * radius * radius;
	
	printf("\n周长是%.2f",circumeference);
	printf("\n面积是%.2f",area);
	return 0;                        
}Code language: PHP (php)

运行输出示例

请输入圆桌的半径:6

周长是18.85
面积是28.27Code language: CSS (css)

const 变量声明

const float Pi = 3.14159265f;        //圆周率Code language: JavaScript (javascript)

核心要点

对比项#define 宏const 变量
本质预处理阶段的文本替换有类型的只读变量
类型检查无有(编译器进行类型检查)
内存占用不占用占用内存
调试不可调试可调试
作用域从定义处到文件末尾遵循变量作用域规则
命名约定全大写可按变量命名(但通常也用大写或驼峰)

优点总结:

  • const 变量有明确的类型,编译器会进行类型检查,减少错误。
  • 试图修改 const 变量会导致编译错误,确保值不被意外改变。
  • 相比宏定义,const 变量更安全、更易于调试。

注意:​ const 变量必须在声明时初始化,之后不能再赋值。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注