理解指针数组与数组指针:概念与实战示例

5星 · 超过95%的资源 4 下载量 117 浏览量 更新于2024-08-04 收藏 15KB DOCX 举报
本文档主要介绍了指针与数组的概念及其在C语言中的应用。首先,它澄清了指针数组与数组指针的区别: 1. 指针数组: - 定义形式:`类型名 *数组名[数组长度]`,如`int *parr[5]`。 - 在这个例子中,`parr`是一个数组,其元素是整型指针,每个元素指向另一个整数。数组长度为5,意味着定义了5个指向整数的指针变量。本质上,`parr`是一个存储指针的数组。 2. 数组指针: - 定义形式:`类型名 (*指针名)[数组长度]`,如`int (*parr)[5]`。 - 这里,`parr`首先是一个指针,它指向一个包含4个整数元素的一维数组。因此,`parr`实际上是存储数组地址的指针。 接着,文档通过示例代码展示了如何使用这两种方式来访问二维数组`arr`。数组指针`p1`将整个二维数组看作是一个一维数组,而指针数组`p2`则将每个子数组视为独立的数组元素,分别存储它们的首地址。通过嵌套循环,文档展示了两种方法访问二维数组元素,并输出了相应的运行结果。 此外,文档还提到了表示二维数组每行起始地址的方法,这对于理解数组内部结构以及高效访问数组元素至关重要。 通过学习这篇文档,读者可以深入了解指针数组和数组指针在C语言中的操作,以及如何利用它们处理多维数组,这对于深入理解C语言的数据结构和内存管理具有重要意义。

import os from openpyxl import load_workbook import docx # 合并docx文件 def merge_docx(file_list, merged_file_name): # 如果合并后的文件已存在,则直接返回 if os.path.exists(merged_file_name): return # 创建合并后的文档对象 merged_doc = docx.Document() # 合并文件内容 for file_name in file_list: doc = docx.Document(file_name) for para in doc.paragraphs: merged_doc.add_paragraph(para.text) for table in doc.tables: merged_doc.add_table(table.rows, table.columns) # 保存合并后的文档 merged_doc.save(merged_file_name) # 读取Excel文件 workbook = load_workbook(filename=r'D:\好记薪\工商资料生成\表格.xlsx') sheet = workbook['需调用文档'] # 判断C列是否为空 if sheet['C2'].value: # 合并A、B文档 merge_docx([r'D:\好记薪\工商资料生成\A公司登记申请书.docx', r'D:\好记薪\工商资料生成\B股东会决议.docx'], 'AB.docx') if sheet['C3'].value or sheet['C4'].value or sheet['C5'].value or sheet['C6'].value: # 合并A、B、C文档 merge_docx([r'D:\好记薪\工商资料生成\A公司登记申请书.docx', r'D:\好记薪\工商资料生成\B股东会决议.docx', r'D:\好记薪\工商资料生成\C章程.docx'], 'ABC.docx') if sheet['C7'].value: # 合并A、B、C、D文档 merge_docx([r'D:\好记薪\工商资料生成\A公司登记申请书.docx', r'D:\好记薪\工商资料生成\B股东会决议.docx', r'D:\好记薪\工商资料生成\C章程.docx', r'D:\好记薪\工商资料生成\D股权转让协议.docx'], 'ABCD.docx') if sheet['C8'].value: # 合并A、B、C、E文档 merge_docx([r'D:\好记薪\工商资料生成\A公司登记申请书.docx', r'D:\好记薪\工商资料生成\B股东会决议.docx', r'D:\好记薪\工商资料生成\C章程.docx', r'D:\好记薪\工商资料生成\E有关债务清偿及担保情况说明.docx'], 'ABCE.docx')

2023-06-11 上传