什么是变量?

变量是程序可操作存储区的名称(标识符) 。

**顾名思义,就是可以改变的量。**

在C++中,变量就是存储数据的容器,不同类型的数据使用不同的变量进行存储。

比如,我们家里面有不同大小的杯子,平时喝水使用一次性杯子或者较小的水杯,因为一次性饮水量一般比较小。而长途旅行所带的保温水壶一般容量都比较大。根据需求不同,选择不同容量的装水容器。数据也是一样,要根据实际情况选择大小匹配的数据容器,如果选择容器过小,会导致数据溢出,如果选择容器过大,会导致空间浪费。

变量声明的语法格式

DataType 变量名;  

例如:
int a;  // 定义一个整型变量,即a这个变量只可以存储整型数据

当程序执行int a;时,操作系统会在内存中随机选择一块空间,且名字是 a,此时这个空间所属于 a 这个变量,根据变量声明所在位置不同(比如main内部或者上面),a 的值为随机值或 0。

img

补充:

内存是一个线性的结构,程序在不运行的时候,比如一个 c++ 文件,并不会占用内存,当运行时,才会将数据加载到内存中,程序结束,内存数据释放。

常用单位转换:

1byte = 8bit
1KB = 1024byte
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB

int 类型变量占 4 个字节。

int a = 1;
cout << sizeof(a) << " " << sizeof(123) << endl;

输出:
4 4

变量赋值

赋值号即 =,切记,这里是赋值,表示将 = 右边的值赋给 = 左边的变量,而并不是相等的意思。

int a;
a = 1;
a = 2;
a = 3;  // 最终输出a的值为3,以最后一次的值为准。

img

int b = 2;   // 声明变量同时直接赋值

注:同一作用域内,相同变量不可以重复声明

获取变量地址:&

int a = 123;
cout << a << endl << &a << endl;

输出:
123
0x7ffd4ba7d324

注:每次运行,变量地址可能都会发生变化。

比如,你打开了一个视频剪辑软件导出一个很大的视频,那么这个软件就会占用很多内存,同时,你还想打个网络游戏,但是电脑资源有限,打不开这个网络游戏,你只好暂时停止视频导出,将内存释放出来。之后打完游戏再导出视频,但是数据占用的内存已经不再是之前的内存了。(和之前内存相同的可能性极小)

标识符命名规范

首先,标识符命名要做到见词知意,比如游戏中有很多角色,每个角色名字我们都用 x、xx、xxx...,这样,程序会变得难以理解。

比如,用变量存储我方英雄生命值,被敌人子弹击中就减少 1,这个变量名可以用 life 存储,或者,用拼音 shengming 存储。

规则:由字母、数字和下划线组成的符号串。

补充:

  • 不能使用 C++ 关键字
  • 区分大小写
  • 数字不能开头

变量交换

比如 变量 a 的值为1,变量 b 的值为2,将 b 的值赋给 a,可以表示成 a = b,然而之前 a 中的值就不存在了。因此需要定义第三方变量,比如 t,作为临时值提前保存 a 的原始值。

image-20240206141348394

image-20240206141433014

int a = 1, b = 2;
int t = a;
a = b;
b = t;
cout << a << " " << b << endl;

输出:
2 1

也可以使用 swap 函数进行交换:

int a = 3, b = 4;
swap(a, b);
cout << a << " " << b << endl;

输出:
4 3

复合运算符

int a = 1;
a += 1;
a *= 2;
cout << a << endl;

输出:
4

变量自增和自减

img

如果单独执行一行 i++ 或 ++i,都是自增 1,程序效果相同。

int i = 1, j = 3;
i++;
cout << i << endl;
++i;
cout << i << endl;

输出:
2
3

x = i++,将 i 的值先赋给 x,然后 i 再自增,x = ++i,将 i 的值先自增,然后再赋给 x。

int i = 1, j = 3;

int x = i++;
cout << x << " " << i << endl;
x = ++i;
cout << x << " " << i << endl;

输出:
1 2
3 3

练一练:对变量 j 进行自减操作。

cin输入数据

cin 可以让我们和计算机进行交互,我们可以向计算机输入数据,经由程序对数据进行处理,然后输出结果。

img

cin 读取数据时,数据之间可以通过空格或换行进行分隔。

分步展示:

常量

在编程中,常量是指在程序执行过程中其值不会发生变化的标识符。

**常量与变量相对,变量的值可以在程序执行过程中被改变,而常量的值是固定的、不可修改的。**

以下是常见的几种常量:

1.整型常量:整型常量就是整数例如:1、2、-3、9 等;

2.实型常量:实型常量就是浮点数(带小数点的)例如:3.1、6.5、-6.123 等;

3.字符常量:字符型常量就是用单引号引起来的字符。例如 'b'、 'c' 等。

定义常量:

const 类型名 常量名 = 常量值; // 常量在定义同时必须进行初始化。

#define 常量名 常量值

使用符号常量名的好处:

1.增加了程序的可读性。比如大家见到了 PI 就知道它代表的是圆周率,定义符号常量名时尽量做到见词知意

2.我们的程序中只要改动了 PI 的值程序中所有 PI 的值都会得到改变。

定义常量名时,通用习惯把常量名都写成大写

const double PI = 3.1415926;

#define PI 3.1415926

闯关练习

电影票

参考程序:

#include <bits/stdc++.h>
using namespace std;

int main() {

    int x;

    cin >> x;

    cout << x << " " << x * 10 <<endl;


    return 0;
}

A+B问题

参考程序:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int a;
    int b;
    cin >> a;
    cin >> b;
    cout << a+b << endl;

    return 0;
}

交换值

参考程序:

#include <iostream>
using namespace std;

int main() {

    int a, b;
    cin >> a >> b;

    /*
        int t = a;
        a = b;
        b = t;
    */

    swap(a, b);

    cout << a << " " << b << endl;

    return 0;
}

鸡兔同笼

参考程序:

#include <iostream>
using namespace std;

int main() {

    /*
        鸡 a   兔 b
        a + b = x 式子1
        2 * a + 4 * b = y  式子2

        2 * a + 2 * b = 2 * x 式子3
        式子2 - 式子3 = 2 * b = y - 2 * x
    */

    int x, y;
    cin >> x >> y;

    int b = (y - 2 * x) / 2;
    int a = x - b;

    cout << a << " " << b << endl;

    return 0;
}

计算(a+b)×c的值

参考程序:

#include <iostream>
using namespace std;

int main() {

    int a, b, c;
    cin >> a >> b >> c;

    cout << (a + b) * c << endl;

    return 0;
}

[NOIP2017 普及组] 成绩

参考程序:

#include <iostream>
using namespace std;

int main() {

    int a, b, c;
    cin >> a >> b >> c;

    cout << a * 0.2 + b * 0.3 + c * 0.5;

    return 0;
}

课后作业

三个整数的和

参考程序:

#include <iostream>
using namespace std;

int main() {

    int a, b, c;
    cin >> a >> b >> c;

    cout << a + b + c << endl;

    return 0;
}

带余除法

参考程序:

#include <iostream>
using namespace std;

int main() {

    int a, b;
    cin >> a >> b;

    cout << a / b << " " << a % b << endl;

    return 0;
}

计算(a+b)/c的值

参考程序:

#include <iostream>
using namespace std;

int main() {

    int a, b, c;
    cin >> a >> b >> c;

    cout << (a + b) / c << endl;

    return 0;
}

results matching ""

    No results matching ""