指针编程:从数组到函数的全面解析

发布时间:2026/9/29 4:18:39

指针编程:从数组到函数的全面解析 目录一、字符指针变量二、数组指针变量2.1数组指针变量的初始化三、函数指针变量3.1函数指针变量的使用四、函数指针数组五、数组指针和指针数组5.1指针数组5.1.1指针数组拟二维数组效果5.2指针数组和数组指针5.2.1 核心区别对比5.2.2 内存布局示例一、字符指针变量字符指针 char*int main() { char ch w; char *pc ch; *pc a; return 0; }int main() { const char* pstr hello; printf(%s\n, pstr); return 0; }const char* pstr hello 本质是把字符串 hello 首字符h的地址放到了pstr中。二、数组指针变量整形指针变量 int * pa 存放的是整形变量的地址能够指向整形数据的指针。浮点型指针变量 float * pa 存放浮点型变量的地址能够指向浮点型数据的指针数组指针变量存放的是数组的地址能够指向数组的指针变量。int * p1[10]; 指针数组int (*p2)[10]; 数组指针变量[ ] 的优先级要高于 * 号的所以必须加上 () 来保证 p 先和 * 结合。2.1数组指针变量的初始化int arr[10] {0};int(*p)[10] arr; p指向包含10 个int元素的数组指针三、函数指针变量函数指针变量存放函数的地址#include stdio.h void test() { printf(hello\n); } int main() { printf(test: %p\n, test); printf(test: %p\n, test); return 0; }函数有地址函数名就是函数的地址可以通过 函数名的方式获得函数的地址。void test() { printf(hello\n); } void (*p1)() test; void (*p2)() test;3.1函数指针变量的使用函数指针调用作加法#include stdio.h int Add(int x, int y) { return xy; } int main() { int (*pf3)(int, int) Add; printf(%d\n, (*pf3)(2, 3)); printf(%d\n, pf3(3, 5)); return 0; }四、函数指针数组函数指针数组把函数的地址存到⼀个数组中元素是函数指针的数组。int (*parr1[3])()parr1 先和 [ ] 结合说明parr1是数组数组的内容是 int (*)() 类型的函数指针。五、数组指针和指针数组5.1指针数组整型数组是存放整型的数组字符数组是存放字符的数组指针数组是存放指针的数组arr有三个元素每个元素的类型是 int* 每个元素是地址可以指向一个区域。5.1.1指针数组拟二维数组效果parr[i] 是访问 parr 数组的元素 parr[i] 找到的数组元素指向了整型一维数组 parr[i] [j] 就是整型一维数组中的元素。#include stdio.h int main() { int arr1[] {1,2,3,4,5}; int arr2[] {2,3,4,5,6}; int arr3[] {3,4,5,6,7}; int* parr[3] {arr1, arr2, arr3}; int i 0; int j 0; for(i 0; i 3; i) { for(j 0; j 5; j) { printf(%d , parr[i][j]); // printf(%d , *(*(parr i) j)); } printf(\n); } return 0; }模拟出二维数组效果本质并非完全是二维数组每一行并非是连续的。5.2指针数组和数组指针5.2.1 核心区别对比对比项指针数组数组指针本质数组元素是指针指针指向数组声明int* arr[10];int (*p)[10];sizeof数组大小 元素个数 × 指针大小指针大小通常4或8字节1操作移动到下一个指针元素移动到下一个完整数组典型用途字符串数组、模拟二维数组指向二维数组的行、函数参数传递5.2.2 内存布局示例指针数组的内存布局int a 1, b 2, c 3; int* arr[3] {a, b, c}; // arr在栈上占用3个指针的空间 // 每个元素存储的是a、b、c变量的地址数组指针的内存布局int arr[3][4] {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}}; int (*p)[4] arr; // p指向arr[0]即第一行 // p1指向arr[1]即第二行跳过4个int
延伸阅读

更多相关文章

2026/9/24 20:21:20

Unity多人游戏客户端预测物理:核心原理、开源方案与实战优化

1. 项目概述:为什么我们需要关注客户端预测物理? 在开发Unity多人联机游戏,尤其是快节奏的动作、射击或体育竞技类游戏时,物理同步问题往往是开发者最头疼的“性能杀手”和“体验破坏者”。想象一下,你控制的角色明明已…

2026/9/23 8:15:06

DeepSeek V4 Pro编程实战:从API调用到IDE集成的完整指南

最近在技术社区和开发者圈子里,关于大语言模型(LLM)编程能力的讨论热度不减。特别是当 DeepSeek 发布其 V4 Pro 模型,并在 SWE-bench 等权威编程基准测试中取得与 Claude Opus 4.6 仅差 0.3% 的惊人成绩时,很多开发者都…

2026/9/19 20:28:01

终极指南:5个简单步骤让旧Mac免费升级最新macOS系统

终极指南:5个简单步骤让旧Mac免费升级最新macOS系统 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为你的旧Mac无法升级到最新macOS系统而烦…

2026/9/28 3:03:23

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/28 6:05:15

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/28 6:07:41

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 0:04:04

AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成

1. 为什么AI Evals值得你花时间搞明白做LLM应用的人,迟早会撞上同一堵墙:模型输出飘忽不定,今天答得好好的,明天换个问法就胡说八道。你改了一版提示词,感觉好像好了点,但到底好了多少?说不清。…

2026/9/29 0:04:04

Java采购管理系统实战:从数据库设计到事务一致性

简介:这是一套面向Java Web初学者与课程设计者的采购管理系统完整源码,采用JSP技术搭建,配合MySQL数据库,用于解决企业采购信息的管理问题,适合作为毕业设计、课程大作业或进销存类项目的参考模板。系统实现了用户登录…

2026/9/29 3:53:39

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/26 19:58:38

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/28 1:59:25

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑