4.变量和常量

4.1 变量的创建

语法形式     date_type    name
            数据类型      变量名

变量的命名遵守规则:

4.2 变量初始化                                                                                

int age = 18;
char ch = 'w';
double weight = 48.0;
unsigned int height = 172;


int n;
n = 20;//不算初始化

4.3 变量的分类                                                                                

全局变量在大括号外部定义的变量适用范围更广
局部变量在大括号内部定义的变量范围较局限
#include <iostream>
using namespace std;

int m = 100;//全局变量

int main()
{    
    int n = 0;//局部变量
    {
        int a = 10;//局部变量
        cout << a << endl;
    }

    return 0;
}

在局部变量和全局变量名字相同情况下,局部变量会优先使用,若要求使用全局变量,只需在变量名前加两个冒号(两者同时存在且被使用时)。

注:在竞赛中能使用全局变量,一般直接是全局变量,好处是:

1.变量不需要进行初始化,因为默认会初始化为0;

2.避免传参,到处都可以使用。

4.4 常量

4.4.1 字面常量

整型常量:

10进制数字,如:1,6,9

8进制数字,以0开头,如:012,016

16进制数字,一般以0x开头,如:0x123

字符常量:'a'

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

4.4.2 #define定义的常量

​
#include <iostream>
using namespace std;

#define M 22

int main()
{    
    cout << M << endl;

    return 0;
}

#define定义的常量,无关于常量类型,编译时只做替换处理,在出现常量名字的地方,直接替换为相应内容。

4.4.3 const定义常量

​
#include <iostream>
using namespace std;

int main()
{    
    const int n = 10;
    n = 20;
    cout << n << endl;

    return 0;
}

上述代码会报错,在对n进行const定义后,n成为常量,便不能对其进行修改。

形式如下:

const 类型 常量名字 = 常量值;

4.5 练习

4.5.1 const定义

#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;

    return 0;
}

5.算术操作符

5.1 算术操作符

5.1.1

介绍五种双目操作符,双目操作符意为有两个操作数,如下:+(加),-(减),*(乘),/(除),%(取余,又叫取模)

注:1./操作符的除数不能为0;

2.%的操作数只能为正数,如5%2,结果为1。

5.2 浮点数的除法

float f = 6.0/4;    //f为1.5
float m = 6/4;      //m为1

两数相除时,要保证至少一个数为浮点数才能得到为浮点数的结果;

当两整数相除时会舍去余数。

5.3 负数求模

关键点:得到余数的正负号由第一个操作数决定。

#include <iostream>
using namespace std;

int main()
{
    int a = -11%5;
    int b = 11%5;
    cout << a << " " << b << endl;
    
    return 0;
}

结果如下:

-1 1

5.4 数值溢出

简要说明,例如char类型的变量,其取值范围是-128——127;

那么以下代码便出现了数值溢出,会造成错误结果:

#include <iostream>
using namespace std;

int main()
{
    char a = 'z';    //Z的ASCII码值为90
    char b = a + 'Z';
    cout << (int)b << endl;
    
    return 0;
}

结果得到-76,而非180。

     

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐