【C语言】深入理解指针(二)(下)

news2024/10/12 14:58:20

本篇博客将讲解以下知识:

1、二级指针

2、指针数组

3、指针数组模拟二维数组

1、二级指针

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

如何理解二级指针?

以上述代码为例:

int ** pp=&p;

(1)pp的类型是int** ,int**是二级指针类型。

(2)pp中的内容是p的地址。

(3)

p+1在x86环境下跳过4个字节,在x64环境下跳过8个字节。

pp+1在x86环境下跳过4个字节,在x64环境下跳过8个字节。

类似的还能写出三级指针:

例如;int  ***    ppp=&pp;

四级指针:

例如: int****  pppp=&ppp;

常用的是一级指针,二级指针。

例子:

对于二级指针的运算有:

以下列代码为例:

#include<stdio.h>
int main()
{
    int a = 10;
    int* pa = &a;
    int** ppa = &pa;
    return  0;

}

(1)*ppa通过对ppa中存放的地址解引用,这样找到的是pa,*ppa其实访问的就是pa

例如:

int    b=20;

*ppa=&b;/价于pa=&b;

(2)**ppa先通过*ppa找到pa,然后对pa进行解引用操作:*pa,那找的是a;

例如:

**ppa=30;

//等价于*pa=30;

//等价于a=30;

2、指针数组

指针数组是指针还是数组?

我们可以用类比的思维来考虑问题:

比如:整型数组是存放整型的数组,字符数组是存放字符的数组。

那么指针数组是存放指针的数组。

例如:

#include<stdio.h>
int main()
{
    char* arr[6];
    int* arr2[10];

    return 0;
}

指针数组的每个元素都是用来存放地址的。

3、指针数组模拟二维数组(注意:模拟的二维数组,但不是真的二维数组)

代码:

上述代码中的: arr[0]就是arr1,arr[1]就是arr2,arr[3]就是arr3.

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

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

相关文章

多点无人机 组网系统技术详解

多点无人机组网系统技术&#xff0c;作为一种先进的多无人机协同作业技术&#xff0c;其核心在于通过先进的通信技术将多架无人机连接成一个高度协同的空中网络&#xff0c;以实现信息共享、任务分配、协同作业等功能。以下是对该技术的详细解析&#xff1a; 一、技术概述 多…

基于SSM的朋辈帮扶系统

文未可获取一份本项目的java源码和数据库参考。 一、本课题研究意义 随着市场经济发展的不断深入&#xff0c;高校学生面临着新的问题和挑战。在全球一体化、价值观多元化、信息网络化的大背景下&#xff0c;越来越多的学生承受着来自社会、家庭与自身方方面面的压力&#xf…

在word/wps中优雅的插入代码

​​​​​​​使用的网址如下&#xff1a;在线美化代码并支持一键黏贴到文档中 使用方式&#xff1a; 1、登录到在线网页中&#xff0c;输入需要格式化的语言&#xff0c;例如JSON 2、点击高亮代码&#xff0c;即可生成格式化后的JSON代码 3、将生成的代码直接复制到wps文档…

软件功能测试重点和流程有哪些?专业软件测评服务公司推荐

软件功能测试就是对产品的各功能进行验证&#xff0c;根据功能测试用例&#xff0c;逐项测试&#xff0c;检查产品是否达到用户要求的功能。功能测试也叫黑盒测试或数据驱动测试&#xff0c;只需考虑需要测试的各个功能&#xff0c;不需要考虑整个软件的内部结构及代码.一般从软…

uniapp__微信小程序使用秋云ucharts折线图双轴

1、子组件 <template><view class"charts-box"><qiun-data-charts type"line":opts"computedOpts":chartData"chartData"/></view> </template><script> export default {props: {chartData: {t…

什么充电宝牌子质量好又靠谱?2024年热销款充电宝型号推荐

在快节奏的现代生活中&#xff0c;充电宝已成为我们随身携带的必需品&#xff0c;为智能手机、平板电脑等电子设备提供随时随地的电力支持。然而&#xff0c;面对市场上琳琅满目的充电宝品牌和型号&#xff0c;如何挑选一款既质量好又靠谱的产品&#xff0c;成为了许多消费者关…

六西格玛黑带项目:TBX-02无人机飞行稳定性提升——张驰咨询

一、项目背景与问题定义 TBX-02是该公司最新发布的消费级无人机&#xff0c;面向摄影爱好者和户外探险者。产品上市后&#xff0c;通过客户反馈和实际测试数据发现&#xff0c;该无人机在复杂飞行环境中&#xff0c;如强风或快速移动时&#xff0c;存在明显的飞行抖动和稳定性…

多线程会在一个事务里面吗?

目录 多线程会在一个事务里面吗&#xff1f; 多线程、数据库事务以及数据库连接之间的关系 Spring的事务管理​​​​​​​ 声明式事务Transactional的实现原理 声明式事务Transactional的失效场景 Transactional注解的方法不是public为什么会失效 Spring AOP的代理机制…

STM32CUBEIDE FreeRTOS操作教程(六):recursive mutexes递归互斥信号量

STM32CUBEIDE FreeRTOS操作教程&#xff08;六&#xff09;&#xff1a;recursive mutexes互斥信号量 STM32CUBE开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件&#xff0c;不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F401RCT6开…

【devops】x-ui 实现一键安装 x-ray 打造高速国际冲浪 | xray管理平台

一、部署X-UI篇 1、Github 地址&说明 github地址如下&#xff1a; https://github.com/FranzKafkaYu/x-ui?tabreadme-ov-file 2、一键部署 2.1、更新并安装curl #Ubuntu、Deibian系统 apt update && apt upgrade -y apt install curl -y #CentOS7 系统 yum…

深度解读企业数字化转型中的关键问题与解决方案

1. 数字优先的力量&#xff1a;如何通过文化变革推动企业迈向数字化未来 数字化转型的核心驱动力 数字优先策略是现代企业应对数字化转型挑战的关键&#xff0c;但其复杂性远超一般技术策略。企业通过将数字优先文化嵌入业务模型&#xff0c;可以在跨部门合作、运营优化和创新…

锐捷园区交换、无线领跑教育行业,以太彩光助力教育网络革新

IDC报告显示,2024年上半年,锐捷园区交换和无线在教育行业市场份额获双第一。 锐捷极简以太彩光:教育网络革新方案 以太彩光的技术创新,为教育数字化承载网络提供了更高效、稳定、简运维的前瞻性网络解决方案。2024年,锐捷极简以太全光3.X方案再次升级,同时支持光改、光混、彩光…

基于VHDL语言的乒乓游戏机电路的设计(毕业论文)

目录 1绪论 1 1.1课题的背景和目的意义 1 1.2国内外研究现状 2 1.3课题研究的内容和创新点 3 1.3.1 研究内容 3 1.3.2研究创新点 3 2开发工具简介 4 2.1 EDA技术概述 4 2.1.1 EDA技术及其发展 4 2.1.2 EDA技术的优势 4 2.1.3 EDA设计流程 5 2.1.4 EDA工具 5 2.1.5 EDA的发展趋势…

固体废物处理(一)——MDPI特刊推荐

特刊征稿 01 期刊名称&#xff1a; Advances in Organic Solid Waste and Wastewater Management 截止时间&#xff1a; 投稿截止日期&#xff1a;11月30日2024 目标及范围&#xff1a; 本主题旨在收集有关有机固体废物和废水管理最新进展的贡献。感兴趣的主题包括与废水…

专线监控方案:运维团队的实战指南

在当前的数字化时代&#xff0c;专线网络已成为企业连接各地分支机构、实现业务协同与数据共享的重要桥梁。然而&#xff0c;随着业务的不断扩展和网络环境的日益复杂&#xff0c;专线网络的稳定性和可靠性面临着前所未有的挑战。为了保障专线网络的顺畅运行&#xff0c;减少潜…

Ivanti Connect Secure SSRF to RCE复现(CVE-2024-21893)

0x01 产品描述&#xff1a; Ivanti Connect Secure是一款企业级远程访问解决方案&#xff0c;提供安全远程访问&#xff08;VPN&#xff09;、多因素认证等功能。Ivanti Connect Secure具备先进的零信任访问能力&#xff0c;包括验证用户、验证设备、控制访问和保护数据。它适用…

jupyterlab的安装与使用攻略/包括汉化方法

官网链接 Project Jupyter | Home 1.第一步安装 打开控制台 使用pip工具安装 pip install jupyterlab 如图 2.安装成功后启动 jupyter lab 会自动启动它的web页面 然后就可以正常使用咯&#xff01;&#xff01; 如果需要更换浏览器访问 新开控制台执行下面命令 jupy…

图论day59|并查集理论基础、107.寻找存在的路径(卡码网)

图论day59|并查集理论基础、107.寻找存在的路径&#xff08;卡码网&#xff09; 并查集理论基础107.寻找存在的路径&#xff08;卡码网&#xff09; 并查集理论基础 使用场景&#xff1a; 当需要判断两个元素是否在同一个集合里的时候&#xff0c;我们就要想到用并查集 主要功…

到 2029 年,人工智能驱动的电子商务欺诈将超过 1070 亿美元

随着人工智能生成的深度伪造产品的使用日益增多&#xff0c;电子商务欺诈行为急剧增加&#xff0c;给在线商家带来了前所未有的安全挑战。 研究公司 Juniper 的一份报告预测&#xff0c;全球损失将增加 141%&#xff0c;从 2024 年的 440 亿美元增至 2029 年的惊人的 1070 亿美…

Ubuntu安装Mysql并实现远程登录【ubuntu 24.04/mysql 8.0.39】

一、安装MySQL sudo apt update # 更新软件源 sudo apt install mysql-server -y # 安装 mysql --version # 查看版本 sudo systemctl status mysql # 查看运行状态 netstat -tln # 以数字ip形式显示mysql的tcp监听状态二、设置MySQL的root密码 sudo mysql -u root # 使…