当前位置: 首页 > news >正文

C++ 变量和常量:开启程序构建之门的关键锁钥与永恒灯塔

目录

一、变量

1.1 变量的创建

1.2 变量的初始化

1.3 变量的分类

1.4 变量的初始化

二、常量

2.1 字面常量

2.2 #define定义常量

2.3 const 定义常量


一、变量

1.1 变量的创建

data_type name;
| |
| |
数据类型 变量名
-------------
int age; //整型变量
char ch; //字符变量
double weight; //浮点型变量

变量的命名规则遵循以下原则:

  • 变量名只能由字母、数字和下划线组成,且必须以字母或下划线开头。

  • 变量名不能以纯数字开头,也不能包含特殊字符,如空格、连字符等。

  • 变量名不能使用语言的关键字,如 int、char、if等。

  • 变量名应具有意义,有助于理解变量的含义和用途。

  • 变量名应简短明了,避免使用过长的名称。

  • 变量名应区分大小写,例如 myVariable 和 myvariable 被视为两个不同的变量。

1.2 变量的初始化

变量在创建的时候就给一个初始值,就叫初始化。

#include<iostream>
using namespace std;int main()
{int num1 = 10 ;char ch = 'A';double num2 = 3.1415926;        
}

如果变量的创建并没有初始化,而是在后续进行初始化操作,那么该操作称为赋值:

#include<iostream>
using namespace std;int main()
{int num;num = 10; //变量的赋值        
} 

1.3 变量的分类

  • 全局变量:在大括号外部定义的变量就是全局变量。全局变量的使用范围更广,整个工程中想使用,都是有办法使用的

  • 局部变量:在大括号内部定义的变量就是局部变量

局部变量的使用范围是比较局限,只能在自己所在的局部范围内使用的

#include<iostream>
using namespace std;int NUM = 100;
int main()
{int num = 200;cout << NUM << endl;cout << num << endl;return 0;        
}

如果局部和全局变量,名字相同:

#include<iostream>
using namespace std;int NUM = 100;
int main()
{int NUM = 200;//当局部变量和全局变量名称相同的情况下,局部变量优先使用cout << "局部变量:" << NUM << endl;//如果我们需要强制使用全局变量,需要在变量前添加两个::cout << "全局变量:" <<::NUM << endl;return 0;        
} 

1.4 变量的初始化

未初始化状态下的全局变量和局部变量:

#include<iostream>
using namespace std;int NUM1;
float NUM2;
int main()
{int num1;float num2;// 未初始化的局部变量和全局变量cout << NUM1 << endl;cout << NUM2 << endl;cout << "不同编译器的版本,局部变量未初始化的值是不确定的" << endl;cout << num1 << endl;cout << num2 << endl; return 0;
}

  • 全局变量:全局变量通常在定义时就被初始化,如果没有明确指定初始值,它们通常会被初始化为0。

  • 局部变量:局部变量通常不会自动初始化。它们需要在使用之前明确地赋值或初始化。如果没有初始化,它们的值将是未定义的,使用未初始化的局部变量可能会导致不可预测的行为或运行时错误,因此局部变量建议初始化。

二、常量

常量就是不能被改变的值,通常我们会使用三种常量:

  • 字面常量

  • #define 定义的常量

  • const 定义的常量

2.1 字面常量

  • 整型常量: 100,-5,0,0x123 整型常量一般可以写成10进制、8进制、16进制。

    • 10进制数字,如: 6、17、22、123

    • 8进制数字,一般是数字0开头的,比如: 012 , 016

    • 16进制数字,一般是0x开头的数字,比如: 0x123 , 0xFF

  • 字符常量: 'a'

  • 浮点型常量: 3.14 , 1E6 (科学计数法的形式)

2.2 #define定义常量

使用 #define 定义常量的时候是不关注类型的,只关注常量的名字叫啥,常量的值是啥,编译在处理这种常量的时候就是直接替换,在出现常量名字的地方,通通替换成常量的内容。

#include <iostream>
using namespace std;
#define M 100
#define CH 'x'
#define PI 3.14159
int main()
{cout << M << endl;cout << CH << endl;cout << PI << endl;return 0;
}

2.3 const 定义常量

除了上面的方式之外,C++中还可以使用 const 来定义常量,这种常量会有具体的类型。比#define 定义常量更加严谨。语法形式如下:

const 类型 常量名字 = 常量值;const double PI = 3.14159;
#include <iostream>
using namespace std;
const double PI = 3.14159;
int main()
{int r = 0;cin >> r;cout << "周长:" << 2 * PI * r << endl;cout << "面经:" << PI * r * r << endl;//PI = 3.14;//这种写法是错误的,常量不能被修改return 0;
}

习惯上,这种常量的名字一般会写成大写,而普通变量的名字不会全大写,这样就可以做一个区分。

使用 const 定义的常量的好处:

  • 增加了程序的可读性, PI 比 3.14159 更加容易理解和书写、使用。

  • 增加了程序的可维护性,如果改变常量的值,只要在定义的部分修改,使用的地方也就随之改变了,做到了"一改全改"的效果。

  • 常量是不能修改的,当然 const 定义的常量自然也不能修改

http://www.lryc.cn/news/496200.html

相关文章:

  • Linux部分实用操作
  • Linux笔记---进程:进程地址空间
  • flutter in_app_purchase google支付 PG-GEMF-01错误
  • “精神内耗”的神经影像学证据:担忧和反刍会引发相似的神经表征
  • Linux--Debian或Ubuntu上扩容、挂载磁盘并配置lvm
  • 【k8s】kubelet 的相关证书
  • 01-树莓派基本配置-基础配置配置
  • 【Windows 11专业版】使用问题集合
  • 前端 vue3 + element-plus + ts 组件通讯,defineEmits,子传父示例
  • 【Django-xadmin】
  • Ubuntu24.04初始化教程(包含基础优化、ros2)
  • 45 基于单片机的信号选择与温度变化
  • #JAVA-常用API-爬虫
  • Qt 面试题复习10~12_2024-12-2
  • 在OpenHarmony系统下开发支持Android应用的双框架系统
  • 对力扣77组合优化的剪枝操作的理解
  • SpringMVC中的Handler、HandlerMapping、HandlerAdapter
  • tomcat 8在idea启动控制台乱码
  • windows下kafka初体验简易demo
  • 证明直纹极小曲面是平面或者正螺旋面.
  • matlab2024a安装
  • Observability:如何在 Kubernetes pod 中轻松添加应用程序监控
  • 关于Nginx前后端分离部署spring boot和vue工程以及反向代理的配置说明
  • redis渐进式遍历
  • 【C++】数据类型与操作实践:详细解析与优化
  • C# 集合(Collection)
  • 【智能控制】实验,基于MATLAB的模糊推理系统设计,模糊控制系统设计
  • 前端跳转路由的时候,清掉缓存
  • 基于 LlamaFactory 的 LoRA 微调模型支持 vllm 批量推理的实现
  • 【赵渝强老师】PostgreSQL的物理存储结构