鹏哥C语言81-82---指针和数组+二级指针+指针数组

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>

//--------------------------------------------------------------------------------------------------------5. 指针和数组
数组:一组相同类型元素的集合
指针变量:是一个变量,存放的是地址

int main()
{int arr[10] = { 1,2,3,4,5, 6,7,8,9,0 };//arr 数组名是首元素地址(两种例外)//&arr[0] 也是首元素地址printf("%p\n", arr);printf("%p\n", &arr[0]);//通过指针访问数组int* p = arr;int sz = sizeof(arr) / sizeof(arr[0]);int i = 0;for (i = 0; i < sz; i++){printf("%d ", *(p + i)); //p指向第一个元素,每次让他+1,因为是int* 类型的指针变量,所以+1一次,跳过4个字节,指向下一个元素}printf("\n");for (i = 0; i < sz; i++){printf("%p---------%p\n", &arr[i], p + i);//验证了地址完全相同}return 0;
}

//函数--数组--指针

test(int* arr, int sz)
{int i = 0;for (i = 0; i < sz; i++){printf("%d ", *(arr + i));}
}int main()
{int arr[10] = { 1,2,3,4,5, 6,7,8,9,0 };int sz = sizeof(arr) / sizeof(arr[0]);test(arr, sz);}

//-----------------------------------------------------------------------------------------------------6. 二级指针
指针变量也是变量,是变量就有地址,那指针变量的地址存放在哪里?
这就是 二级指针 

int main()
{int a = 10;int* pa = &a; // pa 是一个指针变量,一级指针变量// int 表示 pa 指向的对象的类型是 int 类型//  * 表示 pa 是指针变量*pa = 20;printf("%d\n", a); //20int** ppa = &pa; // 二级指针,存放 pa 的地址// int* 代表 ppa 指向的对象的类型是 int*//      * 代表 ppa是指针变量//  *ppa; //pa//  **ppa; //a**ppa = 30;printf("%d\n", a); //30return 0;
}

//总结:二级指针变量 是用来   存放一级指针变量的地址   的//------------------------------------------------------------------------------------------------------7. 指针数组
存放指针的数组,就是指针数组
主语是数组

int main()
{int a = 10;int b = 20;int c = 30;//int arr[10] = { 0 };//int* pa = &a;//int* pb = &b;//int* pc = &c;//parr 存放指针的数组,就是指针数组int* parr[] = {&a, &b, &c};int sz = sizeof(parr) / sizeof(parr[0]); int i = 0;for (i = 0; i < sz; i++){printf("%d ", *(parr[i]));}return 0;
}

//指针数组模拟二维数组

int main()
{int arr[3][4] = { 1,2,3,4,2,3,4,5,3,4,5,6 };// 1 2 3 4// 2 3 4 5// 3 4 5 6int i = 0;int j = 0;//标准的二维数组打印for (i = 0; i < 3; i++){for (j = 0; j < 4; j++){printf("%d ", arr[i][j]);}printf("\n");}printf("\n");//指针数组 模拟二维数组int arr1[4] = { 1,2,3,4 };int arr2[4] = { 2,3,4,5 };int arr3[4] = { 3,4,5,6 };int* parr[3] = { arr1,arr2,arr3 };int x = 0;int y = 0;for (x = 0; x < 3; x++){for(y=0;y<4;y++){printf("%d ", parr[x][y]);}printf("\n");}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/57416.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在 VS Code 中轻松绘图:Draw.io Integration 插件详解

文章目录 在 VS Code 中轻松绘图&#xff1a;Draw.io Integration 插件详解一、什么是 Draw.io Integration 插件&#xff1f;二、插件安装指南1. 安装步骤2. 配置插件 三、如何使用 Draw.io Integration 插件&#xff1f;1. 创建新绘图文件2. 编辑现有图表3. 常用功能与技巧 四…

中小型医院网站:Spring Boot框架详解

5 系统实现 5.1 用户功能模块的实现 用户进入本系统可查看系统信息&#xff0c;包括首页、门诊信息、药库信息以及系统公告信息等&#xff0c;系统前台主界面展示如图5-1所示。 图5-1系统前台主界面图 5.1.1用户登录界面 用户要想实现预约挂号功能&#xff0c;必须登录系统&a…

QGraphics类型学习使用【Qt】【C++】

QGraphics类型学习使用 需求过程全部完整代码 首先已知&#xff0c;QGraphicsView&#xff0c;QGraphicsScene, QGraphicsItem&#xff0c;分别称为&#xff1a;视图&#xff0c;场景&#xff0c;图元&#xff0c;图表就是各种各样的元素&#xff0c;图片元素&#xff0c;线条元…

k8s部署Kafka集群超详细讲解

准备部署环境 Kubernetes集群信息 NAMEVERSIONk8s-masterv1.29.2k8s-node01v1.29.2k8s-node02v1.29.2 Kafka&#xff1a;3.7.1版本&#xff0c;apche版本 Zookeeper&#xff1a;3.6.3版本 准备StorageClass # kubectl get sc NAME PROVISIONER RECLA…

股价创52周新高,云顶新耀成为“黑马”的启示录

踏入2024年以来&#xff0c;创新药产业持续释放积极信号。今年本土创新药出海交易额已超200亿美元&#xff0c;最近医保续约和谈判也有望促进国内创新药长期放量。 市场预期转好之下&#xff0c;生物医药板块在新一轮牛市中进入了估值修复的阶段。HSHKBIO&#xff08;恒生香港…

【LVGL快速入门(二)】LVGL开源框架入门教程之框架使用(UI界面设计)

零.前置篇章 本篇前置文章为【LVGL快速入门(一)】LVGL开源框架入门教程之框架移植 一.UI设计 介绍使用之前&#xff0c;我们要学习一款LVGL官方的UI设计工具SquareLine Studio&#xff0c;使用图形化设计方式设计出我们想要的界面&#xff0c;然后生成对应源文件导入工程使用…

openssh openssl zlib 升级至最新版解决安全问题

openssl依赖于zlib&#xff0c; openssh依赖于openssl和zlib&#xff0c; 所以我们要先安装zlib&#xff0c;然后是openssl&#xff0c;最后是openssh。 各软件下载地址&#xff1a; zlib 地址&#xff1a; zlib Home Site openssl 地址&#xff1a; Downloads | Library…

C#从零开始学习(接口,强制转化和is)(7)

有时根据对象能做什么来分组,而不是根据他们继承的类.这就引入了接口 让无关的类做相同的动作 接口定义一个类必须实现的方法和属性 一个类实现一个接口时,必须包含接口中列出的所有方法和属性 向下强制转化 Appliance是CoffeeMaker的基类 Appliance powerConsumer new Co…

时空智友企业流程化管控系统uploadStudioFile接口存在任意文件上传漏洞

免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 1. 时空智友…

【密码分析学 笔记】ch3 3.1 差分分析

ch3 分组密码的差分分析和相关分析方法 3.1 差分分析 评估分组密码安全性通用方法可用于杂凑函数和流密码安全性 预备知识&#xff1a; 迭代性分组密码&#xff08;分组密码一般结构&#xff09;简化版本 mini-AES CipherFour算法 3.1.1 差分分析原理 现象&#xff1a;密…

JMeter使用不同方式传递接口参数

1、使用 HTTP 请求中的参数&#xff1a; 在 JMeter 的测试计划中&#xff0c;添加一个 "HTTP 请求" 元件。 在 "HTTP 请求" 元件的参数化选项中&#xff0c;可以添加参数的名称和值。可以手动输入参数&#xff0c;也可以使用变量来传递参数值。 如果要使…

汇川机器人与PLC通信-ModbusTCP超详细案例

#SCARA机器人与H5UPLC通过ModbusTCP通信,HMI界面手动操作# 应用背景: 本项目案例部分软件界面已被更新,如机器人示教软件旧版本S01.19R03。但通信的原理基本一致,废话少说,我们直接上图。 一、PLC端配置 1.添加ROB通讯表(自定义),变量表内容包括ROB系统变量,IN区和…

【利用Seaborn进行高级数据可视化】创建美观且信息丰富的图表!

利用Seaborn进行高级数据可视化&#xff1a;创建美观且信息丰富的图表 数据可视化是数据分析和科学研究中不可或缺的部分。通过有效的图表&#xff0c;我们可以迅速了解数据的分布、趋势和关系。在Python的数据科学生态系统中&#xff0c;Seaborn是一个基于Matplotlib的高级库…

大厂面试真题-了解云原生吗,简单说一下docker和k8s

K8s&#xff08;Kubernetes&#xff09;和Docker都是容器化技术中的关键组件&#xff0c;但它们各自扮演着不同的角色。以下是对这两者的详细解析&#xff1a; 一、Docker Docker是一个开源的容器化平台&#xff0c;它允许开发人员将应用程序及其依赖项打包为一个独立的镜像&…

条款8 优先考虑nullptr而非0和NULL

目录 一、nullptr,0,NULL都是什么类型 二、正确调用函数指针版本的函数重载 三、模板推导时使用不能混用 一、nullptr,0,NULL都是什么类型 auto a = 0; -> int auto a = NULL; -> long auto a = nullptr; -> std::nullptr_t 二、正确调用函数…

Notepad++将搜索内容所在行选中,并进行复制等操作

背景 Notepad在非常多的数据行内容中&#xff0c;按照指定内容检索&#xff0c;并定位到具体行&#xff0c;而后对内容行的数据进行复制、剪切、删除等处理动作。 操作说明 检索并标记所在行 弹出搜索框&#xff1a;按下 Ctrl F。 输入查找字符串&#xff1a;在搜索框中输入要…

Cursor零基础小白教程系列「进阶」 - Cursor 智能代码补全详解(Tab)

最适合小白零基础的Cursor教程 网站lookai.top相同作者&#xff0c;最新文章会在网站更新&#xff0c;欢迎收藏书签 Cursor 智能代码补全详解(Tab) 概述 Cursor的智能代码补全&#xff0c;也就是快捷键Tab&#xff0c;是其最强大和独特的AI辅助编程工具之一。本教程将详细介绍…

“避免序列化灾难:掌握实现 Serializable 的真相!(二)”

文章目录 一、什么是序列化&#xff1f;二、Serializable 是如何起作用的&#xff1f;三、为什么不自动序列化所有对象&#xff1f;四、Java 序列化的底层原理序列化的核心步骤&#xff1a; 五、反序列化的原理六、总结&#xff1a;为什么必须实现 Serializable 才能序列化&…

最好的ppt模板网站是哪个?做PPT不可错过的18个网站!

现在有很多PPT模板网站&#xff0c;但真正免费且高质量的不多&#xff0c;今天我就分享主流的国内外PPT模板下载网站&#xff0c;并且会详细分析这些网站的优缺点&#xff0c;这些网站都是基于个人实际使用经验的&#xff0c;免费站点会特别标注&#xff0c;让你可以放心下载&a…

【Jmeter】jmeter指定jdk版本启动

背景&#xff1a; 因权限问题&#xff0c;不能修改操作系统的环境变量或者因jmeter启动加载的默认jdk8版本低&#xff0c;需要指定jdk XX版本启动Jmeter 解决办法&#xff1a; 进入jmeter bin目录选择jmeter.bat&#xff0c;记事本编辑jmeter.bat, 在最前面添加 set MINIMAL_…