参考链接
变量
其实变量就是一个名字,代指的可操作存储区的名称。也不是随便起个名字就可以,在C++中变量的名称由字母、数字和下划线组成。但必须以字母或下划线开头,并且区分字母的大小写。
估计大家对上一节讨论的字符数不是很清楚,一个字符对应8位(每位对应的就是0或者1)。我们拿一个特殊的类型来进行说明,float类型1位符号、8位指数、23位小数,下面拿图来可视化一下:
变量的声明方法:
type variableName;
好,我们来写一段代码看一下:
#include <iostream>
using namespace std;
int main()
{
int iData = 1; //声明变量并进行赋值
float fData = 2.3;
double dData = 5.6;
char cData = '1';
cout << "iData = " << iData << " fData = " << fData << " dData = " << dData << " cData = " << cData << endl;
getchar();
}
运行结果
iData = 1 fData = 2.3 dData = 5.6 cData = 1
我在讲一下变量赋值过程中的两个C++术语:左值和右值。左值就是指向存储位置的表达式;右值就是存储内存中对用的数值。因此,在等号左边的为左值,等号右边的数值或者表达式等等。
作用域
作用域这个应该比较好理解,就是程序中声明的变量可以操作的范围。在C++中主要分三种:局部变量、形式参数、全局变量。局部变量指在函数内部的变量;形式参数指函数参数输入的变量;全局变量指在所有函数的外部。
#include <iostream>
using namespace std;
//声明函数
int calculateFun(int iTmpVar1, int iTmpVar2); //形式参数
int iSum = 0; //全局变量
int main()
{
int iVar1 = 1;
int iVar2 = 3; //局部变量
iSum = calculateFun(iVar1, iVar2);
cout << iSum << endl;
getchar();
}
int calculateFun(int iTmpVar1, int iTmpVar2) //形式参数
{
return iTmpVar1 + iTmpVar2;
}
运行结果
4
在考试和面试的过程中,往往会被问到局部变量和全局变量名称相同的情况下,数据该如何处理?
答:局部变量会覆盖全局变量
#include <iostream>
using namespace std;
int iVar1 = 0; //全局变量
int main()
{
int iVar1 = 1;
cout << iVar1 << endl;
getchar();
}
运行结果
1
常量说明
常量就是固定值,在程序执行期间不会改变,这些固定值叫做字面量。常量主要分为整型常量、浮点常量、字符常量、字符串常量、布尔值。
整型常量:分为十进制(无前缀)、八进制(数字前缀0)、十六进制(数字前缀0x或者0X);说完了前缀,讲一下后缀。后缀可以是u(无符号)或者L(长整型),其中字母大小写不区分
78 //十进制
0x78 //十六进制
05 //八进制
10l //长整型
101ul //无符号长整型
浮点常量:浮点型主要由两部分组成整数和小数部分。带符号的指数可以应e或E引入。
5.6789
56789E-4L
字符常量:主要有三种普通字符、转义序列、通用字符。一般直接写的字符往往会分配char类型,但是如果在字符前添加大写字母L时,则会分配wchar_t类型。普通字符举例:‘a’等;转义字符:
字符串常量:就是使用双引号""将内容包含起来。并且可以使用分隔符将长字符串进行分行
"天眼工作室"
"天眼\
工作室"
"天眼""工作室"
布尔值:这个只有两个值true和false,说白了就是1和0两个值。
定义常量
其实还有两种常见的定义常量的两种方式:define和const,下面来说一下它们的用法。
define的使用方法
#define 变量名 常量
const的使用方法
const 类型 变量名 = 常量
下面通过程序进行实例:
#include <iostream>
using namespace std;
#define VARIABLE 1 //宏定义
const int iVar1 = 0; //常量
int main()
{
cout << "iVar1 = " << iVar1 << " VARIABLE = " << VARIABLE << endl;
getchar();
}
运行结果
iVar1 = 0 VARIABLE = 1
更多《计算机视觉与图形学》知识,可关注下方公众号: