黑猫C++变量、常量、输入输出

本文介绍了C++中的变量概念,包括变量作为存储数据的容器,不同类型数据的选择,变量声明、赋值、地址获取以及标识符命名规范。此外,还涵盖了内存的动态分配,常量的使用,以及变量交换、复合运算符和自增自减操作的讲解。
摘要由CSDN通过智能技术生成

什么是变量?

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

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

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

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

变量声明的语法格式

DataType 变量名;  

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

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

在这里插入图片描述

补充:

内存是一个线性的结构,程序在不运行的时候,比如一个 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,以最后一次的值为准。

在这里插入图片描述

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 的原始值。

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 可以让我们和计算机进行交互,我们可以向计算机输入数据,经由程序对数据进行处理,然后输出结果。

在这里插入图片描述

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

第2次作业

进入课程

  • 27
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在TensorFlow中处理灰度图像,可以按照以下步骤进行输入和输出的设置: 输入灰度图像: 1. 读取灰度图像文件,可以使用OpenCV库或PIL库来加载图像。 2. 将图像转换为Numpy数组,确保它是灰度图像(单通道)。 3. 对数组进行归一化处理,将像素值缩放到0到1之间。 4. 如果需要,可以调整图像的大小。 输出灰度图像: 1. 在TensorFlow中,通常使用`tf.data.Dataset`来组织和处理数据。 2. 将Numpy数组转换为TensorFlow的张量,可以使用`tf.convert_to_tensor`函数。 3. 创建一个包含张量的数据集对象,使用`tf.data.Dataset.from_tensor_slices`函数。 4. 如果需要,可以对数据集进行其他转换操作,例如批处理、随机化、重复等。 5. 在训练过程中,将数据集传递给模型进行训练。 以下是一个简单的示例代码片段,展示了如何将灰度图像加载到TensorFlow中: ```python import tensorflow as tf import cv2 # 输入灰度图像 image_path = 'gray_image.jpg' image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) image = image.astype('float32') / 255.0 # 转换为TensorFlow张量 image_tensor = tf.convert_to_tensor(image) # 创建数据集对象 dataset = tf.data.Dataset.from_tensor_slices(image_tensor) # 对数据集进行其他操作 dataset = dataset.batch(32) dataset = dataset.shuffle(100) # 在训练过程中使用数据集 model.fit(dataset, epochs=10) ``` 请记得根据实际需求进行适当的修改和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值