当前位置: 首页 > news >正文

Linux速览(2)——环境基础开发工具篇(其一)

本章我们来介绍一些linux的常用工具

目录

一. Linux 软件包管理器 yum

1.什么是软件包?

2. 查看软件包

3. 如何安装软件

4. 如何卸载软件

5.yum补充

6. 关于 rzsz

二. Linux编辑器-vim使用

 1. vim的基本概念

2. vim的基本操作

3. vim正常模式命令集

4. vim末行模式命令集

5. vim操作总结

6. 简单vim配置

7.补充


一. Linux 软件包管理器 yum

1.什么是软件包?

        (1)在Linux 下安装软件 , 一个通常的办法是下载到程序的源代码 , 并进行编译 , 得到可执行程序 ,但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好 , 做成软件包 ( 可以理解成 windows 上的安装程序)放在一个服务器上 , 通过包管理器可以很方便的获取到这个编译好的软件包 , 直接进行安装。
        (2)软件包和软件包管理器, 就好比 "App" " 应用商店 " 这样的关系 .
        (3)yum(Yellow dog Updater, Modified)是 Linux 下非常常用的一种包管理器 . 主要应用在 Fedora, RedHat, Centos等发行版上 .
注意事项:
        (1)关于 yum 的所有操作必须保证主机 ( 虚拟机 ) 网络畅通 !!!
        (2)可以通过 ping 指令验证
ping www.baidu.com

2. 查看软件包

        通过 yum list 命令可以罗列出当前一共有哪些软件包 . 由于包的数目可能非常之多 , 这里我们需要使用 grep 命令只筛选出我们关注的包. 例如 :
yum list | grep lrzsz
结果如下 :
lrzsz.x86_64          0.12.20-36.el7        @base
注意事项 :
        (1)软件包名称: 主版本号 . 次版本号 . 源程序发行号 - 软件包的发行号 . 主机平台 .cpu 架构 .
        (2)"x86_64" 后缀表示 64 位系统的安装包 , "i686" 后缀表示 32 位系统安装包 . 选择包时要和系统匹配 .
        (3)"el7" 表示操作系统发行版的版本 . "el7" 表示的是 centos7/redhat7. "el6" 表示 centos6/redhat6.
        (4)最后一列, base 表示的是 " 软件源 " 的名称 , 类似于 " 小米应用商店 ", " 华为应用商店 " 这样的概念 .

3. 如何安装软件

        通过 yum, 我们可以通过很简单的一条命令完成 gcc 的安装 .
sudo yum install lrzsz
yum 会自动找到都有哪些软件包需要下载 , 这时候敲 "y" 确认安装 .
出现 "complete" 字样 , 说明安装完成 .
注意事项 :
        (1)安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成 .
        (2)yum安装软件只能一个装完了再装另一个 . 正在 yum 安装一个软件的过程中 , 如果再尝试用 yum 安装另外一个软件, yum 会报错 .
        (3)如果 yum 报错 , 请根据情况进行 百度 .

4. 如何卸载软件

        仍然是一条命令:
sudo yum remove lrzsz

5.yum补充

6. 关于 rzsz

  这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件 .
  安装完毕之后可以通过拖拽的方式将文件上传过去.

6.1 安装

常规而言云服务器上一般都已预装,如果没有可以通过以下命令安装:
(1)在 root 账户下:
先输入:
yum list | grep rzsz

查找到需要安装的版本:

然后输入以下命令进行安装:

yum install lrzsz.x86_64

(2)在普通账户下:

sudo yum install -y lrzsz.x86_64

6.2 使用

(1)接收文件

方法一:直接拖拽

        就是直接将文件拖拽到终端就可以了

方法二:直接在终端输入rz
rz

        在弹出的窗口中选择文件即可~~

(2)发送文件
sz

        选择要发的文件即可

二. Linux编辑器-vim使用

vi/vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vim vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window mac os 、windows。本章我们统一按照 vim 来进行讲解。

 1. vim的基本概念

vim有 三种模式 ( 其实有好多模式,目前掌握这 3 种即可 ), 分别是命令模式( command mode )、插入模式(Insert mode )和底行模式( last line mode ),各模式的功能区分如下:
(1)正常/普通/命令模式(Normal mode)
        控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode 下,或者到 last line mode
(2)插入模式(Insert mode)
        输入  进入该模式,只有在Insert mode 下,才可以做文字输入,按「 ESC 」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
(3)末行模式(last line mode)
        文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下, shift + :   可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入 :
help vim-modes
我这里一共有 12 种模式 :six BASIC modes six ADDITIONAL modes.

2. vim的基本操作

进入 vim, 在系统提示符号输入 vim 及文件名称后,就进入 vim 全屏幕编辑画面 :
           
vim test.c

注意:       

进入vim之后,是处于[正常模式],要切换到[插入模式]才能够输入文字。

2.1 [正常模式]切换至[插入模式]

       (1)输入a
       (2)输入i
       (3)输入o

2.2 [插入模式]切换至[正常模式]

     (1)目前处于[插入模式 ] ,就只能一直输入文字,如果发现输错了字 ,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到 [ 正常模式 ] 再删除文字。当然,也可以直接删除。

2.3 [正常模式]切换至[末行模式]

     (1)「shift + ;」 , 其实就是输入「 :

2.4 退出vim及保存文件

[正常模式]下,按一下「:」冒号键进入「Last line mode,例如:
     (1): w (保存当前文件)
     (2): wq (输入「wq , 存盘并退出 vim)
     (3): q! (输入q!, 不存盘强制退出 vim)

3. vim正常模式命令集

3.1 插入模式

(1)按「 i 」切换进入插入模式「 insert mode 」,按 “i” 进入插入模式后是从光标当前位置开始输入文件;
(2)按「 a 」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
(3)按「 o 」进入插入模式后,是插入新的一行,从行首开始输入文字。

3.2 从插入模式切换为命令模式

(1)按「 ESC 」键。

3.3 移动光标

        (1)vim可以直接用键盘上的光标来上下左右移动,但正规的 vim 是用小写英文字母「 h 」、「 j」、「k 」、 「l 」,分别控制光标左、下、上、右移一格。
        (2)按「G 」:移动到文章的最后。
        (3)按「 $ 」:移动到光标所在行的 行尾 ”。
        (4)按「^ 」:移动到光标所在行的 行首 ”。
        (5)按「w 」:光标跳到下个字的开头。
        (6)按「e 」:光标跳到下个字的字尾。
        (7)按「b 」:光标回到上个字的开头。
        (8)按「#l 」:光标移到该行的第 # 个位置,如: 5 l, 56 l
        (9)按[gg ]:进入到文本开始。
        (10)按[shift g ]:进入文本末端。
        (11)按「ctrl + b 」:屏幕往 移动一页。
        (12)按「ctrl + f 」:屏幕往 移动一页。
        (13)按「ctrl + u 」:屏幕往 移动半页。
        (14)按「ctrl + d 」:屏幕往 移动半页。

3.4 删除文字

(1)「x 」:每按一次,删除光标所在位置的一个字符
(2)「#x 」:例如,「 6x 」表示删除光标所在位置的 后面(包含自己在内) ”6 个字符
(3)「X 」:大写的 X ,每按一次,删除光标所在位置的 前面 一个字符
(4)「#X 」:例如,「 20X 」表示删除光标所在位置的 前面 ”20 个字符
(5)「dd 」:删除光标所在行
(6)「#dd 」:从光标所在行开始删除 #

3.5 复制

(1)「yw 」:将光标所在之处到字尾的字符复制到缓冲区中。
(2)「#yw 」:复制 # 个字到缓冲区
(3) 「yy 」:复制光标所在行到缓冲区。
(4) 「#yy 」:例如,「 6yy 」表示拷贝从光标所在的该行 往下数 ”6 行文字。
(5) 「p 」:将缓冲区内的字符贴到光标所在位置。注意:所有与 “y” 有关的复制命令都必须与“p” 配合才能完成复制与粘贴功能。

3.6 替换

(1)「r 」:替换光标所在处的字符。
(2)「R 」:替换光标所到之处的字符,直到按下「 ESC 」键为止。

3.7 撤销上一次操作

(1)「u 」:如果您误执行一个命令,可以马上按下「 u 」,回到上一个操作。按多次 “u” 可以执行多次回复。
(2)「ctrl + r : 撤销的恢复

3.8 更改

(1)「cw 」:更改光标所在处的字到字尾处
(2)「c#w 」:例如,「 c3w 」表示更改 3 个字

3.9 跳至指定的行

(1)「ctrl + g 」列出光标所在行的行号。
(2)「#G 」:例如,「 15G 」,表示移动光标至文章的第 15 行行首。

4. vim末行模式命令集

在使用末行模式之前,请记住先按「 ESC 」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。

4.1 列出行号

(1)「set nu : 输入「 set nu 」后,会在文件中的每一行前面列出行号。

4.2 跳到文件中的某一行

(1)  「# : # 」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字 15 ,再回车,就会跳到文章的第15 行。

4.3 查找字符

(1)「/ 关键字」 : 先按「 / 」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按
(2)「n 」会往后寻找到您要的关键字为止。
(3)「? 关键字」:先按「 ? 」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n 」会往前寻找到您要的关键字为止。

4.4 保存文件

(1)「w : 在冒号输入字母「 w 」就可以将文件保存起来

4.5 离开vim

(1) 「q 」:按「 q 」就是退出,如果无法离开 vim ,可以在「 q 」后跟一个「 ! 」强制离开 vim
(2)「wq 」:一般建议离开时,搭配「 w 」一起使用,这样在退出的时候还可以保存文件。

5. vim操作总结

6. 简单vim配置

6.1 配置文件的位置

(1)在目录 /etc/ 下面,有个名为 vimrc 的文件,这是系统中公共的 vim 配置文件,对所有用户都有效。
(2)而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为: “.vimrc” 。例如, /root 目录下,通常已经存在一个.vimrc 文件 , 如果不存在,则创建之。
(3)切换用户成为自己执行 su ,进入自己的主工作目录 , 执行 cd ~
(4)打开自己目录下的 .vimrc 文件,执行 vim .vimrc

6.2 常用配置选项,用来测试

(1)设置语法高亮 : syntax on
(2)显示行号 : set nu
(3)设置缩进的空格数为 4: set shiftwidth=4

6.3 使用插件

要配置好看的 vim ,原生的配置可能功能不全,可以选择安装插件来完善配置,保证用户是你要配置的用户,接下来:
(1)安装 TagList 插件 , 下载 taglist_xx.zip , 解压完成,将解压出来的 doc 的内容放到~ /.vim/doc,  将解压出来的plugin 下的内容拷贝到~ /.vim/plugin
(2)在~ /.vimrc 中添加 :
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Use_Right_Window=1

(3)安装文件浏览器和窗口管理器插件: WinManager

(4)下载 winmanager.zip 2.X 版本以上的
(5)解压 winmanager.zip ,将解压出来的 doc 的内容放到~ /.vim/doc,  将解压出来的 plugin 下的内容拷贝到~/.vim/plugin
(6)在~ /.vimrc 中添加:             
let g:winManagerWindowLayout=‘FileExplorer|TagList
nmap wm :WMToggle<cr>

(7)然后重启vim,打开~/XXX.c或~/XXX.cpp, normal状态下输入"wm", 你将看到上图的效果。更具体移步:点我, 其他手册,请执行 vimtutor 命令。

6.4 参考资料

Vim从入门到牛逼(vim from zero to hero)

7.补充

待续

相关文章:

Linux速览(2)——环境基础开发工具篇(其一)

本章我们来介绍一些linux的常用工具 目录 一. Linux 软件包管理器 yum 1.什么是软件包? 2. 查看软件包 3. 如何安装软件 4. 如何卸载软件 5.yum补充 6. 关于 rzsz 二. Linux编辑器-vim使用 1. vim的基本概念 2. vim的基本操作 3. vim正常模式命令集 4. vim末行模式…...

AWS SES发送邮件时常见的错误及解决方法?

AWS SES发送邮件如何做配置&#xff1f;使用AWS SES发信的限制&#xff1f; 在使用AWS SES发送邮件时&#xff0c;可能会遇到一些常见的错误。AokSend将介绍一些常见的AWS SES发送邮件错误及其相应的解决方法&#xff0c;帮助用户更好地利用AWS SES进行邮件发送。 AWS SES发送…...

视频基础学习三——视频帧率、码率与分辨率

文章目录 前言一、介绍1.定义2.三者之间的关系 总结 前言 在之前的文章中详细介绍了一些关于图像的色彩与格式&#xff0c;而视频其实就是由一张张图片进行展示呈现出来的。 我们会经常说一段视频的质量好不好&#xff0c;而什么是视频的质量呢&#xff1f;博主的个人理解就是…...

Spring(详细介绍)

目录 一、简介 1、什么是Spring&#xff1f; 2、Spring框架的核心特性 3、优点 二、IOC容器 介绍 1、获取资源的传统方式 2、控制反转方式获取资源 3、DI 4、IOC容器在Spring中的实现 入门案例 1、创建Maven Module 2、引入依赖 3、创建HelloWorld类 4、在Spring的配…...

Kettle使用

1.准备工作 KETTLE-5.4.zip HANA环境192.168.xx.xx 用户名&#xff1a;system 密码&#xff1a;****** 端口号&#xff1a;30015 Oracle环境 192.168.xx.xx 用户名 HANA_TEST 密码 ****** 端口号&#xff1a;31001 配置java环境变量 因为本次数据转换测试为将HANA数据转换到Or…...

互联网摸鱼日报(2024-04-01)

互联网摸鱼日报(2024-04-01) 36氪新闻 「矽迪半导体」获数千万天使轮融资&#xff0c;提供高效功率半导体方案&#xff5c;硬氪首发 本周双碳大事&#xff1a;国资委即将发布央企ESG指导意见&#xff1b;上海发文推动建立产品碳足迹管理体系&#xff1b;隆基新硅片面世 数字…...

pnpm比npm、yarn好在哪里?

前言 pnpm对比npm/yarn的优点&#xff1a; 更快速的依赖下载更高效的利用磁盘空间更优秀的依赖管理 我们按照包管理工具的发展历史&#xff0c;从 npm2 开始讲起&#xff1a; npm2 使用早期的npm1/2安装依赖&#xff0c;node_modules文件会以递归的形式呈现&#xff0c;严格…...

大前端-postcss安装使用指南

PostCSS 是一款强大的 CSS 处理工具&#xff0c;可以用来自动添加浏览器前缀、代码合并、代码压缩等&#xff0c;提升代码的可读性&#xff0c;并支持使用最新的 CSS 语法。以下是一份简化的 PostCSS 安装使用指南&#xff1a; 一、安装 PostCSS 在你的项目目录中&#xff0c…...

全局UI方法-弹窗三-文本滑动选择器弹窗(TextPickDialog)

1、描述 根据指定的选择范围创建文本选择器&#xff0c;展示在弹窗上。 2、接口 TextPickDialog(options?: TextPickDialogOptions) 3、TextPickDialogOptions 参数名称 参数类型 必填 参数描述 rang string[] | Resource 是 设置文本选择器的选择范围。 selected nu…...

LibreOffice 将word,excel,PowerPoint文件转换PDF

安装LibreOffice并将Word和Excel文件转换为PDF文件&#xff0c;并设置文件存放路径的步骤如下&#xff1a; 1. 安装LibreOffice 如果尚未安装LibreOffice&#xff0c;可以通过以下命令在Ubuntu上安装&#xff1a; sudo apt update sudo apt install libreoffice 2. 使用Li…...

鱼眼相机的测距流程及误差分析[像素坐标系到空间一点以及测距和误差分析]

由于最近在整理单目测距的内容&#xff0c;顺手也总结下鱼眼相机的测距流程和误差分析&#xff0c;如果有错误&#xff0c;还请不吝赐教。 参考链接: 鱼眼镜头的成像原理到畸变矫正&#xff08;完整版&#xff09; 相机模型总结&#xff08;针孔、鱼眼、全景&#xff09; 三维…...

谈谈Python中的列表、元组、字典和集合的主要区别和用法

谈谈Python中的列表、元组、字典和集合的主要区别和用法 Python是一种功能强大且易于学习的编程语言&#xff0c;它提供了多种数据结构来支持各种编程需求。其中&#xff0c;列表&#xff08;list&#xff09;、元组&#xff08;tuple&#xff09;、字典&#xff08;dictionar…...

【WPF应用24】C#中的Image控件详解与应用示例

在C#应用程序开发中&#xff0c;图像显示是一个常见的需求。无论是创建图形界面还是处理图像数据&#xff0c;System.Windows.Controls.Image控件都是实现这一目标的重要工具。本文将详细介绍Image控件的功能、用法、优化技巧以及一些实际应用示例&#xff0c;帮助开发者更好地…...

CTF题型 php://filter特殊编码绕过小汇总

CTF题型 php://filter特殊编码绕过小汇总 文章目录 CTF题型 php://filter特殊编码绕过小汇总特殊编码base64编码string过滤器iconv字符集 例题1.[Newstarctf 2023 week2 include]2.[Ctfshow web 117] php://filter 是一个伪协议&#xff0c;它允许你读取经过过滤器处理的数据流…...

【嵌入式智能产品开发实战】(十二)—— 政安晨:通过ARM-Linux掌握基本技能【C语言程序的安装运行】

目录 程序的安装 程序安装的本质 在Linux下制作软件安装包 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 嵌入式智能产品开发实战 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xf…...

网络编程的学习1

网络编程 在网络通信协议下&#xff0c;不同计算机上运行的程序&#xff0c;进行数据传输。 三要素 ip&#xff1a;设备在网络中的地址&#xff0c;是唯一的标识。 ipv4:采取32位地址长度&#xff0c;分成4组。 ipv6&#xff1a;采用128位地址长度&#xff0c;分成8组。 …...

spark log4j日志文件动态参数读取

需要在log4j xml文件中设置动态参数&#xff0c;并支持spark任务在集群模式下&#xff0c;动态参数读取正常&#xff1b; 1.log4j配置文件 log4j2.xml <?xml version"1.0" encoding"UTF-8"?> <Configuration status"info" name&quo…...

设计模式,装修模式,Php代码演示,优缺点,注意事项

装饰模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许动态地向一个现有对象添加新的功能或行为&#xff0c;而不改变其原始结构。在 PHP 中&#xff0c;可以使用类的继承和组合来实现装饰模式。下面是一个简单的 PHP 装饰模式示例代码&am…...

ubuntu下vscode ctrl+tab松开ctrl后不自动选中文件

vscode用ctrltab切换文件时&#xff0c;松开ctrl键后会自动选中切换的文件。 但是在ubuntu下发现有时不能自动选中切换的文件&#xff0c;需要再次按enter键才能打开文件。 经过测试发现解决方法有两个&#xff1a; 方法1&#xff1a;确认wayland状态&#xff0c;关闭wayland…...

【云开发笔记No.19】关于中台架构(1)

在云开发领域&#xff0c;中台架构是一种至关重要的组织架构&#xff0c;它为企业提供了一种灵活且高效的方式来应对市场的快速变化。下面将详细阐述中台架构的定义、起源、定位和价值。 中台架构的定义 中台架构是指在企业信息系统中&#xff0c;将业务流程、数据和应用系统…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...