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

【JavaWeb学习Day24】

Web前端实战

Vue工程化

Vue是一款用于构建用户界面的渐进式的JavaScript框架。(官方:https://cn.vuejs.org)

Vue项目工程化:在企业级的前端项目开发中,把前端开发所需求的工具、技术、流程、经验等进行规范、标准化。

模块化:项目划分若干模块,单独开发、维护、提高效率。

组件化:将页面的各个组成部分封装为一个一个的组件,提高复用。

规范化:提供标准统一的目录结构,编码规范、开发流程。

自动化:项目的构建、开发、测试、打包、部署

环境准备:

介绍:create-vue是Vue官方提供的最新的脚手架工具,用于快速生成一个工程化的Vue项目。

create-vue提供的功能:统一的目录结构、本地调试、热部署、单元测试、集成打包上线

依赖环境:NodeJS

npm:Node Package Manager,是NodeJS的软件包管理器

Vue项目简介

创建:

创建一个工程化的Vue项目,执行命令:npm create vue@3.3.4

(提示:执行上述指令,将会安装并执行create-vue,他是Vue官方的项目脚手架工具)

进入项目目录,执行命令安装当前项目的依赖:npm install

(注意:创建项目以及安装依赖的过程,都是需要联网的。)

项目结构:

启动:执行命令:npm run dev ,就可以启动了

Vue项目开发流程

*.vue是Vue项目中的组件文件,在Vue项目中也称为单文件组件(SFC,Single-File Components)。Vue的单文件组件会将一个组件的逻辑(JS),模板(HTML)和样式(CSS)封装在同一个文件里.vue

API分格

选项式API:可以包含多个选项的对象来描述组件的逻辑,如:data、method、mounted等,选项定义的属性都会暴露在函数内部的this上,他会指向当前的组件实例。

组合式API:是Vue3提供的一种基于函数的组件编写方式,通过使用函数来组织和复用组件的逻辑,他提供了一种更灵活更可组合的方式来编写组件

<script setup>
//引入ref函数和onMounted函数
import { ref, onMounted } from 'vue'
//声明相应式数据
const count = ref(0);
​
//声明函数 - 在组合是Api中没有this
function add() {count.value++;
}
//钩子函数
onMounted(() => {console.log('vue mounted...')
})
</script>
<template><button @click="add">count is {{count}}</button>
</template>
<style scoped>
</style>

setup:是一个标识,告诉vue需要进行一些处理,让我们可以更简洁的使用组合式API

ref():接收一个内部值,返回一个响应式的ref对象,此对象只有指向内部值的属性value。

onMounted():在组合式API中的钩子方法,注册一个回调函数,在组件挂载完成后执行。

(在Vue中的组合式API使用时,是没有this对象的,this对象是undefined。)

案例

要求在页面加载完毕后,发送异步请求,加载数据,渲染表格

项目中用到axios,就需要安装axios的依赖:npm install axios

<script setup>
//引入ref函数
import { ref,onMounted } from 'vue';
import axios from 'axios';
//声明相应式数据
const name = ref('');
const gender = ref('');
const job = ref(1);
const userList = ref([]);
​
//声明函数
async function search() {const result = await axios.get('https://web-server.itheima.net/emps/list?name=${name.value}&gender=${gender.value}&job=${job.value}').then(result =>{userList.value = result.data.data;})
}
​
//钩子函数
onMounted(() => {search();
})</script><template><div id="center">姓名: <input type="text" name="name" v-model="name">性别:<select name="gender" v-model="gender"><option value="1">男</option><option value="2">女</option></select>职位:<select name="job" v-model="job"><option value="1">班主任</option><option value="2">讲师</option><option value="3">其他</option></select><input class="btn" type="button" value="查询" @click="search"></div><table><tr><th>序号</th><th>姓名</th><th>头像</th><th>性别</th><th>职位</th><th>入职时间</th><th>更新时间</th></tr><!-- v-for 用于列表循环渲染元素 --><tr v-for="(user, index) in userList" :key="user.id"><td>{{index + 1}}</td><td>{{user.name}}</td><td> <img :src="user.image"> </td><td><span v-if="user.gender == 1">男</span><span v-else-if="user.gender == 2">女</span><span v-else>其他</span></td><td><span v-if="user.job == 1">班主任</span><span v-else-if="user.job == 2">讲师</span><span v-else-if="user.job == 3">学工主管</span><span v-else-if="user.job == 4">教研主管</span><span v-else-if="user.job == 5">咨询师</span><span v-else>其他</span></td><td>{{user.entrydate}}</td><td>{{user.updatetime}}</td></tr></table>
</template><style scoped>table,th,td {border: 1px solid #000;border-collapse: collapse;line-height: 50px;text-align: center;}#center,table {width: 60%;margin: auto;}#center {margin-bottom: 20px;}img {width: 50px;}input,select {width: 17%;padding: 10px;margin-right: 30px;border: 1px solid #ccc;border-radius: 4px;}.btn {background-color: #ccc;}
</style>

相关文章:

【JavaWeb学习Day24】

Web前端实战 Vue工程化 Vue是一款用于构建用户界面的渐进式的JavaScript框架。&#xff08;官方&#xff1a;https://cn.vuejs.org&#xff09; Vue项目工程化&#xff1a;在企业级的前端项目开发中&#xff0c;把前端开发所需求的工具、技术、流程、经验等进行规范、标准化。…...

Scratch034豌豆发射(下)

知识回顾 1、克隆体点击角色的判断 2、使用克隆体时“停止该角色其他脚本”积木的作用范围。 效果演示 提示:这里可以添加本文要记录的大概内容每隔一段时间,舞台右侧就会出现多个除草机向左移动 点击不同位置的豌豆射手,可以发射豌豆攻击对应位置的除草机 除草机被豌豆击中…...

nacos下载及安装

下载官方最新稳定版 github下载较慢&#xff0c;推荐下面的下载链接 Nacos Server 下载 | Nacos 官网 点击下载和试用下载最新稳定版 Nacos Server 下载 | Nacos 官网 配置检查&#xff08;可选&#xff09; 默认情况下&#xff0c;Nacos 使用内置的 Derby 数据库&#x…...

javase集合框架Map篇

一、常见的Map的实现 有HashMap、Hashtable、LinkedHashMap、TreeMap、ConcurrentHashMap。 二、HashMap和Hashtable 的区别 HashMap&#xff1a;底层是基于数组链表&#xff0c;非线程安全的&#xff0c;默认容量是16、允许有空的健和值。 Hashtable&#xff1a;基于哈希表…...

【RAGFlow】windows本地pycharm运行

原因 由于官方只提供了docker部署&#xff0c;基于开源代码需要实现自己内部得逻辑&#xff0c;所以需要本地pycharm能访问&#xff0c;且docker运行依赖得其余组件&#xff0c;均需要使用开发服务器得配置。 修改过程 安装python 项目依赖于Python 版本&#xff1a;>3.1…...

STM32初始安装

前言 很多人刚买来STM32就迫不及待地想要用它来写程序&#xff0c;看见STM32开发版和ST-Link上有几个插口就直接连接&#xff0c;结果就像我一样一不小心就导致ST -Link烧坏了&#x1f602; 所以本篇博客将做最基础的但是对于小白来说最重要的教学&#xff0c;STM32的线路连接…...

数据库系统概论(二)数据模型

数据库系统概论&#xff08;二&#xff09;数据模型 数据库系统概论&#xff08;二&#xff09;数据模型前言一、数据建模二、概念模型三、数据模型的三要素四、层次模型五、网状模型六、关系模型 总结&#xff08;核心概念速记&#xff09;&#xff1a; 数据库系统概论&#x…...

深入理解C语言链表:数据结构的基石

在C语言的编程宇宙中&#xff0c;链表就像是一座稳固的基石&#xff0c;支撑着众多复杂程序的构建。它以独特的魅力和强大的功能&#xff0c;在解决各类编程难题时发挥着至关重要的作用。今天&#xff0c;就让我们一同深入探索链表的奥秘。 目录 一、链表初相识 二、链表的结…...

微信小程序文件存储和获取的详细方案

在微信小程序中&#xff0c;要根据索引&#xff08;如自定义标识符&#xff09;检查是否存在对应的文件&#xff0c;可以通过以下方案实现。这里假设你已通过某种方式将文件路径与索引关联存储&#xff08;例如使用本地缓存 Storage&#xff09;&#xff0c;以下是完整流程&…...

java BCC异或校验例子

需求 对一个十六进制的字符串进行BCC校验 方法 private static String XORCheck(String rawMsg) {// 16进制字符串需要转成10进制数组进行校验&#xff0c;然后再返回16进制字符串用于与原来的字符匹配byte[] bytes HexDumpMsgFormat.hexStr2DesBytes(rawMsg);return BytesUt…...

[machine learning] DP(Data Parallel) vs DDP(Distributed Data Parallel)

DP和DDP是并行训练的两种方法&#xff0c;本文简单介绍它们两者的区别。 一、DP (Data Parallel) DP是单进程&#xff0c;多线程的&#xff0c;每个线程负责一个GPU&#xff0c;它只适用于一台机器。DP训练的流程如下图所示(图片转载自&#xff1a;https://medium.com/mlshar…...

今日头条文章爬虫教程

今日头条文章爬虫教程 随着互联网的发展&#xff0c;新闻资讯类平台如今日头条积累了海量的数据。对于数据分析师、研究人员等群体来说&#xff0c;获取这些数据进行分析和研究具有重要的价值。本文将介绍如何使用Python编写爬虫&#xff0c;爬取今日头条的文章数据。 一、准…...

鸿蒙应用开发—数据持久化之SQLite

文章目录 SQLite简介创建数据库添加数据查询数据更新数据删除数据升级数据库使用事务参考 SQLite简介 SQLite是一个轻量级关系数据库&#xff0c;占用资源很少&#xff0c;只有几百KB的大小&#xff0c;无需服务器支撑&#xff0c;是一个零配置、事务性的SQL数据库引擎。 相对…...

Docker Compose 部署 steamcmd 安装奈斯服务端

由于打算在云端服务器部署奈斯启示录服务端跟朋友们一起玩&#xff0c; 所以在云端搭建服务器&#xff0c; 顺便写下本文章记录搭建的过程。 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539687357 要使用 Docker Compose 部署 steamcmd&#xff08;Steam 命令行…...

K8s 1.27.1 实战系列(八)Service

一、Service介绍 1、Service 的作用与核心功能 Service 是 Kubernetes 中用于抽象一组 Pod 并提供稳定访问入口的资源。它解决了以下问题: ​Pod IP 不固定:Pod 可能因故障、扩缩容或更新导致 IP 变化,Service 通过 ClusterIP(虚拟 IP)提供固定访问地址。​负载均衡:自动…...

Scala编程_实现Rational的基本操作

在Scala中实现一个简单的有理数&#xff08;Rational&#xff09;类&#xff0c;并对其进行加法、比较等基本操作. 有理数的定义 有理数是可以表示为两个整数的比值的数&#xff0c;通常形式为 n / d&#xff0c;其中 n 是分子&#xff0c;d 是分母。为了确保我们的有理数始终…...

Android15 Camera框架中的StatusTracker

StatusTracker介绍 StatusTracker是Android15 Camera框架中用来协调Camera3各组件之间状态转换的类。 StatusTracker线程名&#xff1a;std::string("C3Dev-") mId "-Status" Camera3 StatusTracker工作原理 StatusTracker实现批处理&#xff08;状态…...

Manus 演示案例:谷歌公司运营模拟器游戏体验

一、项目背景与愿景 在科技行业蓬勃发展的当下&#xff0c;谷歌作为行业巨头&#xff0c;其成长历程充满了无数值得深入探究的决策智慧。这些决策不仅塑造了谷歌的辉煌&#xff0c;也为全球企业的发展提供了宝贵的借鉴。本项目旨在打造一款以谷歌公司发展为蓝本的运营模拟器游戏…...

【大模型基础_毛玉仁】2.1 大数据+大模型→新智能

【大模型基础_毛玉仁】2.1 大数据大模型→新智能 2.大语言模型架构2.1 大数据大模型→新智能2.1.1 大数据大模型→能力增强1&#xff09;Kaplan-McCandlish 扩展法则2&#xff09;Chinchilla 扩展法则 2.1.2 大数据大模型→能力扩展 2.大语言模型架构 大语言模型&#xff08;L…...

20天 - TCP 和 UDP 有什么区别?说说 TCP 的三次握手?TCP 是用来解决什么问题?

TCP 和 UDP 有什么区别&#xff1f; TCP&#xff08;传输控制协议&#xff09;和 UDP&#xff08;用户数据报协议&#xff09;都是传输层的网络协议&#xff0c;它们的主要区别如下&#xff1a; 连接方式 TCP&#xff1a;面向连接的协议&#xff0c;类似于打电话&#xff0c…...

【设计模式】掌握建造者模式:如何优雅地解决复杂对象创建难题?

概述 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于&#xff1a;某个对象的构建过程复杂的情况。 由于实现了构建和装配的解耦。…...

【网络安全工程】任务11:路由器配置与静态路由配置

目录 一、概念 二、路由器配置 三、配置静态路由CSDN 原创主页&#xff1a;不羁https://blog.csdn.net/2303_76492156?typeblog 一、概念 1、路由器的作用&#xff1a;通过路由表进行数据的转发。 2、交换机的作用&#xff1a;通过学习和识别 MAC 地址&#xff0c;依据 M…...

10 【HarmonyOS NEXT】 仿uv-ui组件开发之Avatar头像组件开发教程(一)

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; 目录 第一篇&#xff1a;Avatar 组件基础概念与设计1. 组件概述2. 接口设计2.1 形状类型定义2.2 尺寸类型定义2.3 组件属性接口 3. 设计原则4. 使用…...

蓝桥杯备赛-差分-重新排序

问题描述 给定一个数组 AA 和一些查询 Li,RiLi​,Ri​, 求数组中第 LiLi​ 至第 RiRi​ 个元素之和。 小蓝觉得这个问题很无聊, 于是他想重新排列一下数组, 使得最终每个查 询结果的和尽可能地大。小蓝想知道相比原数组, 所有查询结果的总和最多可 以增加多少? 输入格式 输…...

①Modbus TCP转Modbus RTU/ASCII网关同步采集无需编程高速轻松组网

Modbus TCP转Modbus RTU/ASCII网关同步采集无需编程高速轻松组网https://item.taobao.com/item.htm?ftt&id784749793551 MODBUS TCP 通信单元 MODBUS TCP 转 RS485 MS-A1-50X1 系列概述 MS-A1-50X1 系列概述 MS-A1-50X1系列作为MODBUS TCP通信的服务器进行动作。可通…...

2025年四川烟草工业计算机岗位备考详细内容

四川烟草工业计算机岗位备考详细内容&#xff08;持续更新&#xff09; 文章目录 四川烟草工业计算机岗位备考详细内容&#xff08;持续更新&#xff09;一、计算机基础&#xff08;一&#xff09;计算机发展与组成计算机发展历程计算机系统组成软件系统 &#xff08;二&#x…...

Git 设置全局代理

Git 设置全局代理或项目代理 git config&#xff1a; 全局配置&#xff0c;设置git代理服务器 # 设置 HTTP 代理 git config --global http.proxy http://127.0.0.1:7897# 设置 HTTPS 代理 git config --global https.proxy http://127.0.0.1:7897# 设置所有协议的代理&…...

【Java开发指南 | 第三十四篇】IDEA没有Java Enterprise——解决方法

读者可订阅专栏&#xff1a;Java开发指南 |【CSDN秋说】 文章目录 1、新建Java项目2、单击项目名&#xff0c;并连续按两次shift键3、在搜索栏搜索"添加框架支持"4、勾选Web应用程序5、最终界面6、添加Tomcat 1、新建Java项目 2、单击项目名&#xff0c;并连续按两次…...

ROS实践(二)构建Gazebo机器人模型文件urdf

目录 一、基础语法 1. urdf文件组成 2. robot根标签 3. link 和 joint标签 4. sensor标签 二、 实验&#xff1a;使用launch文件启动rviz查看机器人模型 1. 编写机器人模型的urdf文件。 2. 编写launch文件。 3. 运行launch&#xff0c;查看效果。 URDF&#xff08;Unifi…...

论文阅读-秦汉时期北方边疆组织的空间互动模式与直道的定位(中国)

论文英文题目&#xff1a;A spatial interaction model of Qin-Han Dynasty organisation on the northern frontier and the location of the Zhidao highway (China) 发表于&#xff1a;journal of archaeological science&#xff0c;影响因子&#xff1a;3.030 论文主要是…...

【MySQL_04】数据库基本操作(用户管理--配置文件--远程连接--数据库信息查看、创建、删除)

文章目录 一、MySQL 用户管理1.1 用户管理1.11 mysql.user表详解1.12 添加用户1.13 修改用户权限1.14 删除用户1.15 密码问题 二、MySQL 配置文件2.1 配置文件位置2.2 配置文件结构2.3 常用配置参数 三、MySQL远程连接四、数据库的查看、创建、删除4.1 查看数据库4.2 创建、删除…...

设计模式之建造者模式:原理、实现与应用

引言 建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它通过将复杂对象的构建过程分解为多个简单的步骤&#xff0c;使得对象的创建更加灵活和可维护。建造者模式特别适用于构建具有多个组成部分的复杂对象。本文将深入探讨建造者模式的原…...

2025最新群智能优化算法:山羊优化算法(Goat Optimization Algorithm, GOA)求解23个经典函数测试集,MATLAB

一、山羊优化算法 山羊优化算法&#xff08;Goat Optimization Algorithm, GOA&#xff09;是2025年提出的一种新型生物启发式元启发式算法&#xff0c;灵感来源于山羊在恶劣和资源有限环境中的适应性行为。该算法旨在通过模拟山羊的觅食策略、移动模式和躲避寄生虫的能力&…...

Apache Log4j 2

目录 1. Apache Log4j 2 简介 1.1 什么是Log4j 2&#xff1f; 1.2 Log4j 2 的主要特性 2. Log4j 2 的核心组件 2.1 Logger 2.2 Appender 2.3 Layout 2.4 Filter 2.5 Configuration 3. Log4j 2 的配置 4. Log4j 2 的使用示例 4.1 Maven 依赖 4.2 示例代码 4.3 输出…...

ArcGIS Pro字段编号相关代码

一、引言 在地理信息系统&#xff08;GIS&#xff09;的数据管理与分析中&#xff0c;字段操作是不可或缺的一环。 SHP文件作为常见的地理数据存储格式&#xff0c;其字段的灵活运用对于数据的组织、展示和分析具有重要意义。 在实际工作中&#xff0c;常常需要对字段进行编…...

ubuntu22.04机器人开发环境配置

1. ros2环境配置&#xff08;humble&#xff09; #配置源 # https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html sudo apt install software-properties-common sudo add-apt-repository universe sudo apt update && sudo apt install curl -y# …...

万字深度剖析——JS数据结构(上)

数组本质是对象&#xff0c;键就是索引&#xff0c;值就是元素。 push /unshift 在数组最后/最前添加 pop /shift 把数组最后/最前的元素删除,返回的是被删除的元素 splice(0,2&#xff0c;5)从第0给位置开始删除2个元素&#xff0c;并添加一个元素 数组自带的…...

golang dlv调试工具

golang dlv调试工具 在goland2022.2版本 中调试go程序报错 WARNING: undefined behavior - version of Delve is too old for Go version 1.20.7 (maximum supported version 1.19) 即使你go install了新的dlv也无济于事 分析得出Goland实际使用的是 Goland安装目录下dlv 例…...

【算法 C/C++】二维前缀和

2025 - 03 - 08 - 第 70 篇 Author: 郑龙浩 / 仟濹 【二维前缀和】 文章目录 前缀和与差分 - 我的博客前缀和(二维)1 基本介绍(1) **sum[i][j] 表示什么&#xff1f;&#xff1f;&#xff1f;**(2) **前缀和怎么求&#xff1f;&#xff1f;&#xff1f;计算 sum[i][j]&#xf…...

如何使用postman来测试接口

一、postman的介绍与下载 可参考&#xff1a; https://blog.csdn.net/freeking101/article/details/80774271 二、api获取网站 阿里云API应用市场 地址&#xff1a;云市场_镜像市场_软件商店_建站软件_服务器软件_API接口_应用市场 - 阿里云 三、具体测试过程 可模拟浏览…...

olmOCR:高效精准的 PDF 文本提取工具

在日常的工作和学习中&#xff0c;是否经常被 PDF 文本提取问题困扰&#xff1f;例如&#xff1a; 想从学术论文 PDF 中提取关键信息&#xff0c;却发现传统 OCR 工具识别不准确或文本格式混乱&#xff1f;需要快速提取商务合同 PDF 中的条款内容&#xff0c;却因工具不给力而…...

Vue项目通过内嵌iframe访问另一个vue页面,获取token适配后端鉴权(以内嵌若依项目举例)

1. 改造子Vue项目进行适配(ruoyi举例) (1) 在路由文件添加需要被外链的vue页面配置 // 若依项目的话是 router/index.js文件 {path: /contrast,component: () > import(/views/contrast/index),hidden: true },(2) 开放白名单 // 若依项目的话是 permission.js 文件 cons…...

请谈谈 HTTP 中的重定向,如何处理 301 和 302 重定向?

HTTP重定向深度解析&#xff1a;301与302的正确使用姿势 一、重定向本质解析 重定向就像快递员送快递时发现地址变更&#xff0c;新地址会写在包裹单的"改派地址"栏。 浏览器收到3xx状态码时&#xff0c;会自动前往Location头指定的新地址。 常用状态码对比&…...

隧道定向号角喇叭为隧道安全保驾护航

隧道广播系统的搭建&#xff1a;科技赋能&#xff0c;打造安全高效的隧道环境。隧道作为现代交通网络的重要组成部分&#xff0c;其安全管理和信息传递的效率直接关系到整个交通系统的运行。然而&#xff0c;隧道环境的特殊性——封闭、狭窄、回声干扰多&#xff0c;使得传统的…...

RuleOS:区块链开发的“破局者”,开启Web3新纪元

RuleOS&#xff1a;区块链开发的“破冰船”&#xff0c;驶向Web3的星辰大海 在区块链技术的浩瀚宇宙中&#xff0c;一群勇敢的探索者正驾驶着一艘名为RuleOS的“破冰船”&#xff0c;冲破传统开发的冰层&#xff0c;驶向Web3的星辰大海。这艘船&#xff0c;正以一种前所未有的姿…...

C#程序结构及基本组成说明

C# 程序的结构主要由以下几个部分组成,以下是对其结构的详细说明和示例: 1. 基本组成部分 命名空间 (Namespace) 用于组织代码,避免命名冲突。通过 using 引入其他命名空间。 using System; // 引入 System 命名空间类 (Class) C# 是面向对象的语言,所有代码必须定义在类或…...

Django与数据库

我叫补三补四&#xff0c;很高兴见到大家&#xff0c;欢迎一起学习交流和进步 今天来讲一讲alpha策略制定后的测试问题 mysql配置 Django模型体现了面向对象的编程技术&#xff0c;是一种面向对象的编程语言和不兼容类型能相互转化的编程技术&#xff0c;这种技术也叫ORM&#…...

力扣热题 100:二叉树专题进阶题解析(后7道)

系列文章目录 力扣热题 100&#xff1a;哈希专题三道题详细解析(JAVA) 力扣热题 100&#xff1a;双指针专题四道题详细解析(JAVA) 力扣热题 100&#xff1a;滑动窗口专题两道题详细解析&#xff08;JAVA&#xff09; 力扣热题 100&#xff1a;子串专题三道题详细解析(JAVA) 力…...

Linux——system V共享内存

共享内存区是最快的IPC(进程内通信)形式&#xff0c;不再通过执行进入内核的系统调用来传递彼此的数据 1.共享内存的原理 IPC通信的本质是让不同的进程先看到同一份资源&#xff0c;然后再进行通信&#xff0c;所以想要通过共享内存进行通信&#xff0c;那么第一步一定是让两个…...

【C语言】指针篇

目录 C 语言指针概述指针的声明和初始化声明指针初始化指针 指针的操作解引用操作指针算术运算 指针的用途动态内存分配作为函数参数 指针与数组数组名作为指针通过指针访问数组元素指针算术和数组数组作为函数参数指针数组和数组指针指针数组数组指针 函数指针函数指针的定义和…...