甘肃住房城乡建设厅网站首页阿里巴巴网站建设分析

张小明 2026/3/12 5:20:33
甘肃住房城乡建设厅网站首页,阿里巴巴网站建设分析,外贸网站分类,江苏连云港网站制作公司想要了解 C/C 中的指针运算#xff0c;我会从指针运算的本质、核心运算类型#xff08;加减、比较、下标#xff09;、代码示例和注意事项等方面#xff0c;用通俗易懂的方式讲解#xff0c;掌握指针运算的核心逻辑。一、指针运算的本质指针的本质是存储内存地址的变量 中的指针运算我会从指针运算的本质、核心运算类型加减、比较、下标、代码示例和注意事项等方面用通俗易懂的方式讲解掌握指针运算的核心逻辑。一、指针运算的本质指针的本质是存储内存地址的变量因此指针运算不是简单的数值加减而是基于指针指向的类型大小的内存地址偏移运算。举个核心例子如果有一个int* pint占 4 字节那么p 1并不是地址值加 1而是地址值加4 字节即sizeof(int)指向内存中的下一个int类型元素如果是char* pchar占 1 字节p 1才是地址值加 1指向下一个char元素。简单来说指针运算的步长 指针指向的类型的大小sizeof(类型)。二、指针的核心运算类型指针支持的运算并不多主要包括指针加减整数、指针减指针、指针比较、下标运算本质是指针运算下面逐一讲解。1. 指针加减整数最常用格式指针 ± nn为整数作用指针指向的地址向前 / 向后偏移n * sizeof(指针类型)字节指向同类型的第n个元素。代码示例cpp运行#include iostream using namespace std; int main() { int arr[] {10, 20, 30, 40}; int* p arr; // 指针p指向数组首元素arr等价于arr[0] // 输出指针地址和指向的值 cout p的地址 (void*)p 指向的值 *p endl; // 指向arr[0]值为10 // p 1偏移sizeof(int)4字节指向arr[1] p p 1; cout p1的地址 (void*)p 指向的值 *p endl; // 指向arr[1]值为20 // p - 1偏移回4字节指向arr[0] p p - 1; cout p-1的地址 (void*)p 指向的值 *p endl; // 指向arr[0]值为10 // 直接用指针访问arr[2]p 2 cout *(p2) *(p 2) endl; // 输出30等价于arr[2] return 0; }输出说明以 64 位系统为例地址仅为示例plaintextp的地址0x7ffeefbff460指向的值10 p1的地址0x7ffeefbff464指向的值20 p-1的地址0x7ffeefbff460指向的值10 *(p2) 30可以看到p1的地址比原地址大 4 字节sizeof(int)。2. 指针减指针仅适用于同类型指针格式指针1 - 指针2作用计算两个指针之间相差的元素个数不是字节数要求两个指针必须指向 ** 同一个数组或连续内存** 的同类型元素否则结果未定义。代码示例cpp运行#include iostream using namespace std; int main() { int arr[] {10, 20, 30, 40}; int* p1 arr[0]; // 指向第一个元素 int* p2 arr[3]; // 指向第四个元素 // 指针减指针计算元素个数差 int diff p2 - p1; cout p2 - p1 diff endl; // 输出3相差3个元素 // 注意指针加指针是不允许的无意义编译器报错 // int error p1 p2; // 编译错误 return 0; }关键注意指针减指针的结果是ptrdiff_t类型一个有符号整数类型通常等价于long上面示例中用int接收是因为数值范围匹配。指针加指针是非法的编译器会直接报错两个地址相加没有任何逻辑意义。3. 指针的比较运算格式指针1 指针2、指针1 ! 指针2、指针1 指针2等作用比较两个指针的内存地址大小同样要求指针指向同一个数组或连续内存否则比较结果的意义不大。代码示例cpp运行#include iostream using namespace std; int main() { int arr[] {10, 20, 30, 40}; int* p arr; int* p_end arr 4; // 指向数组末尾的下一个位置arr[4]超出数组但合法 // 用指针比较遍历数组 while (p p_end) { cout *p ; p; // 指针后移 } cout endl; // 输出10 20 30 40 return 0; }说明数组末尾的下一个位置如arr 4是 “合法的空指针”可以用来比较但不能解引用*p_end否则会数组越界。4. 下标运算[]本质是指针运算C/C 中数组的下标运算arr[i]本质上等价于*(arr i)其中arr是数组首地址指针i是偏移量。这意味着指针可以用下标访问数组名也可以用指针方式访问。代码示例cpp运行#include iostream using namespace std; int main() { int arr[] {10, 20, 30, 40}; int* p arr; // 数组的下标运算 指针运算 cout arr[2] endl; // 30等价于*(arr 2) cout p[2] endl; // 30等价于*(p 2) cout *(arr 2) endl; // 30和上面一致 // 甚至可以写“反人类”的写法i[arr]不推荐仅作演示 cout 2[arr] endl; // 30因为2[arr]等价于*(2 arr) *(arr 2) return 0; }关键结论数组名是不可修改的指针常量指针而指针变量是可以修改的这是数组名和指针的唯一本质区别比如arr是错误的而p是合法的。三、指针运算的注意事项类型决定步长指针运算的偏移量由指针指向的类型决定不是固定的 1 字节这是指针运算的核心。越界风险指针运算容易导致内存越界比如p 10指向不存在的元素解引用越界指针会导致程序崩溃或数据篡改。空指针 / 野指针不能运算NULL或nullptr指针、野指针指向随机地址的指针不能进行任何运算否则会触发未定义行为。仅同类型指针可运算不同类型的指针如int*和char*不能进行减运算或比较除非强制类型转换不推荐。总结指针运算的核心是基于类型大小的内存地址偏移步长为sizeof(指针指向的类型)。指针支持的运算包括加减整数最常用、减指针计算元素个数、比较运算地址大小、下标运算本质是*(指针 i)。数组的下标运算arr[i]等价于*(arr i)指针和数组名在运算上几乎可以互换除了数组名是常量指针。使用指针运算时要严格避免越界和操作空指针 / 野指针。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

响应式模板网站模板深圳在线招聘最新消息

第一章:PHP 8.6 JIT性能革命的背景与意义PHP 作为长期服务于 Web 开发领域的主流脚本语言,其执行效率始终是开发者关注的核心议题。随着现代应用对响应速度和并发处理能力的要求不断提升,传统的解释执行模式逐渐显现出性能瓶颈。PHP 8.0 引入…

张小明 2026/3/5 5:44:23 网站建设

欧美在路边给了钱就可以做网站用wordpress建的大部

57c1-2四轮轮毂电机驱动汽车的DYC直接横摆力矩稳定性控制,上层控制器DYC产生横摆力矩Mz,下层基于最优分配理论对附加横摆力矩进行四轮独立分配,控制效果良好,能实现车辆在高低附着系数路面下的稳定性,可应用在高速下高…

张小明 2026/3/5 5:44:24 网站建设

免费logo在线制作设计seo职位信息

ISO20000新版标准深度解析:5大关键变化如何重塑IT服务管理 【免费下载链接】ISO20000信息技术服务管理体系标准新版标准解读PDF下载 探索信息技术服务管理的最新标准,本仓库精心整理了《ISO20000新版标准解读》PDF,深入剖析标准条款&#xff…

张小明 2026/3/5 5:44:25 网站建设

如何建立网站做微商简述营销型网站开发流程图

Hilo作为阿里巴巴集团开发的跨端HTML5游戏开发解决方案,其强大的模块化扩展机制让开发者能够轻松为框架添加自定义功能。无论你是刚接触Hilo的新手,还是希望深入定制框架功能的资深开发者,本指南都将为你提供完整的技术路线图。 【免费下载链…

张小明 2026/3/5 5:44:26 网站建设

手机免费制作网站模板画册设计报价明细表

简介 这是在 b 站学习的一门课程,《在线教你使用 TypeScriptVue3Vite 进行 WEB 前端项目实战,陈天狼联合前端乐哥打造》对于想入门 ts,vue3,vite 相关的技术的非常友好,老师讲的非常的清晰易懂,对于学习过…

张小明 2026/3/5 5:44:55 网站建设

门源网站建设公司系统开发的五个阶段

Linux 文件管理与命令行操作全解析 1. 文件查找命令 在 Linux 系统中,有多个实用的命令可用于查找文件和命令的相关信息。 - whereis 命令 :该命令用于返回指定命令的二进制文件(使用 -b 选项)、手册页(使用 -m 选项)和源代码(使用 -s 选项)的位置。若不使用任何选…

张小明 2026/3/5 5:44:28 网站建设