3.C++中程序的语法基础--常量、变量

在程序中,变量、常量是构成表达式的重要部分,尤其是变量,在程序中是大量使用的,所谓常量,指的是一旦初始化就无法修改的值,常量的定义中含有const 表示这个变量是一个常量,如

我们定义PI为一个常量,表示3.14

#include <iostream>
using namespace std;
int main()
{
	const float PI=3.14;//定义PI值
   cout << "PI="<< PI <<endl;
}

运行后的结果为:

如果我们在程序中修改PI的值为3.1415

#include <iostream>
using namespace std;
int main()
{
	const float PI=3.14;//定义PI值
	PI=3.1415;
   cout << "PI="<< PI <<endl;
}

其实在IDE中,就会有一个红色的波浪线的提示

运行程序后

直接编译失败,提示出了错误,提示这个参数PI为只读,不允许赋值。

什么时候使用常量这个没有强制规定,但是使用常量会带来以下好处:

1.可以提高程序的可读性、代码的重用性,

2.防止变量被错误修改,从而保证程序的安全性和稳定性。

因此合理的使用常量,能够让我们的代码更加规范、易读和易于维护,所以什么时候使用常量这个根据程序开发需要进行确定。

所谓变量就是指可以改变的量,定义方式与常量类似,常量中const表示,去掉const,则就是变量,

#include <iostream>
using namespace std;
int main()
{
	const float PI=3.14;//定义PI值
   cout << "pi="<< PI <<endl;
   int radius=10;
   cout << "Area=PI(r*r)="<< (PI*radius*radius) << endl;
}

上面,我们定义了一个变量radius,并且初始化值为10,计算出圆的面积,如果我们计算完后,再改变半径的值为20,看看程序执行结果

#include <iostream>
using namespace std;
int main()
{
	const float PI=3.14;//定义PI值
   cout << "pi="<< PI <<endl;
   int radius=10;
   cout << "Radius=" << radius  << endl;
   cout << "Area=PI(r*r)="<< (PI*radius*radius) << endl;
   radius=20;
    cout << "Radius=" << radius  << endl;
   cout << "Area=PI(r*r)="<< (PI*radius*radius) << endl;
}

执行结果:

 可以看到变量的值被改变后程序可以正常执行,并且没有报错。

常量和变量在定义,初始化,赋值等操作时,都会涉及到内存的使用和变化,这里不讲解了,后面如果涉及到了再讲解。

常量和变量的使用范围,所谓作用范围就是在程序开发中常用的作用域,变量或常量在自己的作用域内是有效的,超过了自己的作用域,就没有效了。

看下面的程序:

#include <iostream>
using namespace std;
int area()
{
 int radius=30;
 cout << "Radius=" << radius <<endl;
 return 0;
}


int main()
{
	const float PI=3.14;//定义PI值
   cout << "pi="<< PI <<endl;
   int radius=10;
   cout << "Radius=" << radius  << endl;
   cout << "Area=PI(r*r)="<< (PI*radius*radius) << endl;
   area();
      
   cout << "Radius=" << radius  << endl;
   cout << "Area=PI(r*r)="<< (PI*radius*radius) << endl;

}

在函数中定义的每个变量的作用范围只适用于当前函数,在函数外不能使用,定义是无效的,

#include <iostream>
using namespace std;


int area()
{
 int radius=30;
 cout << "Radius=" << radius <<endl;
 return 0;
}


int main()
{
	const float PI=3.14;//定义PI值
   cout << "pi="<< PI <<endl;
   radius=10;
   cout << "Radius=" << radius  << endl;
   cout << "Area=PI(r*r)="<< (PI*radius*radius) << endl;
   area();
      
   radius=20;
   cout << "Radius=" << radius  << endl;
   cout << "Area=PI(r*r)="<< (PI*radius*radius) << endl;

}

在area中定义了变量radius,但是在main函数中无法使用,因为radius,则超出了使用范围。因此无效。但是,如果我们在函数外定义一个变量,将area中的变量取消

#include <iostream>
using namespace std;

int radius = 0;
int area() {
	radius = 30;
	cout << "Radius=" << radius << endl;
	return 0;
}


int main() {
	const float PI = 3.14; //定义PI值
	cout << "pi=" << PI << endl;
	radius = 10;
	cout << "Radius=" << radius  << endl;
	cout << "Area=PI(r*r)=" << (PI * radius * radius) << endl;
	area();

	cout << "Radius=" << radius  << endl;
	cout << "Area=PI(r*r)=" << (PI * radius * radius) << endl;

}

看运行结果

可以看到变量值发生了变化,那么这个变量的作用域就不再限于函数,但是如果我们在函数中再定义一个变量,

#include <iostream>
using namespace std;

int radius = 0;
int area() {
	int radius = 30;
	cout << "Radius=" << radius << endl;
	return 0;
}


int main() {
	const float PI = 3.14; //定义PI值
	cout << "pi=" << PI << endl;
	radius = 10;
	cout << "Radius=" << radius  << endl;
	cout << "Area=PI(r*r)=" << (PI * radius * radius) << endl;
	area();

	cout << "Radius=" << radius  << endl;
	cout << "Area=PI(r*r)=" << (PI * radius * radius) << endl;

}

比如在area函数中再定义一个radius变量,那么执行

可以看到在main函数中的变量与area又出现了变化,area改变radius的值后,main中的值并没有变化,那么这是因为area中重新定义了变量,这个变量的作用范围不再是全局了,仅限于这个函数内部有效,我们变量是哪个变量有效,看哪个变量的定义离使用最近,离的最近的,才是对自己生效的那个变量,离的远的就不会生效了。常量与这个类似,只是常量一般我们要定义为全局常量,局部常量,定义意义不大。以后在使用的时候也尽量使用全局,如果用全局就无所谓范围的限制了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值