43.【C语言】指针(重难点)(F)

目录

15.二级指针

    *定义

    *演示

16.三级以及多级指针

    *三级指针的定义

    *多级指针的定义

17.指针数组

    *定义

    *代码

18.指针数组模拟二维数组

往期推荐

15.二级指针

    *定义

之前讲的指针全是一级指针

int a = 1;
int *pa = &a;//一级指针

如果写成

int a = 1;
int *pa = &a;//pa是一级指针
int** ppa = &pa;//ppa是二级指针

二级指针定义:指向(存储)一级指针地址的指针

其实在这篇文章已经提前铺垫过了41.【C语言之外】聊聊Cheat Engine官方教程步骤6的思考

*演示

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{int a = 1;int* pa = &a;//pa是一级指针int** ppa = &pa;//ppa是二级指针return 0;
}

命名的含义:ppa-->point pa-->point (point pa)

x86环境下,F11逐语句执行,运行到return 0;

打开监视窗口

现从&ppa查到&a

查看内存,输入&ppa

bc f8 8f 00 --倒着写-->00 8f f8 bc-->008ff8bc-->是&pa的结果

pa中存储着a的地址

c8 f8 8f 00--倒着写-->00 8f f8 c8-->是&a的结果

01 00 00 00--倒着写-->00 00 00 01-->是变量a的值

可以想到下面代码打印结果

printf("%d",**ppa);//二级指针需要两次解引用,因此要带两个*

就是a的值:1

16.三级以及多级指针

*三级指针的定义

类比二级指针,可以推出三级指针的定义:指向(存储)二级指针地址的指针(如int*** ppa=&ppa;)

*多级指针的定义

同理推出多级指针定义:n级指针是指向(存储)(n-1)级指针地址的指针

17.指针数组

*定义

回忆整型数组的定义:存放整型的数组

所以指针数组的定义:存放指针(地址)的数组

*代码

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{int a = 1;int b = 2;int c = 3;int* arr[] = { &a,&b,&c };for (int i = 0; i < 3; i++){printf("%p\n", arr[i]);//打印指针数组}return 0;
}

 

DC-D0=C,D0-C4=C-->连续存放

18.指针数组模拟二维数组

*代码

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{int arr1[] = { 1,2,3,4 };int arr2[] = { 5,6,7,8 };int arr3[] = { 9,10,11,12 };//数组名即代表数组首元素的地址int* arr[] = { arr1,arr2,arr3 };for (int i = 0; i < 3; i++){for (int j = 0; j < 4; j++){printf("%d ", arr[i][j]);}printf("\n");}return 0;
}

*分析

上方代码并没有创建二维数组,但是却依靠指针数组模拟出二维数组,可以按照二维数组的形式(arr[i][j])来访问

注意:arr[i][j]等同于*(*(arr+i)+j)

(二维数组文章:13.5.【C语言】二维数组)


往期推荐

19.【C语言】指针(重难点)(A)

37.【C语言】指针(重难点)(B)

38.【C语言】指针(重难点)(C)

39.【C语言】指针(重难点)(D)

40.【C语言】指针(重难点)(E)

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

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

相关文章

机器学习——线性回归(sklearn)

目录 一、认识线性回归 1. 介绍 2. 多元线性回归的基本原理&#xff08;LinearRegression&#xff09; 二、多重共线性 1. 介绍 2. 多重共线性详细解释 三、岭回归&#xff08;解决多重共线性问题&#xff09; 1. 模型推导 2. 选取最佳的正则化参数取值 四、Lasso&am…

景联文科技:破解数据标注行业痛点,引领高质量AI数据服务

数据标注行业是人工智能和机器学习领域中一个非常重要的组成部分。随着AI技术的发展&#xff0c;对高质量标注数据的需求也在不断增长。 数据标注市场的痛点 1. 团队管理 在众包和转包模式下&#xff0c;管理大量的标注人员是一项挑战。 需要确保标注人员的专业性、稳定性和…

Pod的调度机制

文章目录 一、Pod调度概述二、Pod调度策略实现方式三、kube-scheduler调度1、kube-scheduler调度的流程2、过滤阶段3、打分阶段4、kube-scheduler 调度示例4.1、创建 Deployment 资源清单4.2、应用Deployment4.3、查看被kube-scheduler自动调度的Pod 四、nodeName调度1、创建Po…

Linux驱动入门实验班——LED驱动(附百问网视频链接)

目录 一、确定引脚编号 二、编写思路 2.1驱动层 2.2应用层 三、源码 四、实现 课程链接 一、确定引脚编号 首先&#xff0c;可以在开发板上执行如下命令查看已经在使用的GPIO状态&#xff1a; cat /sys/kernel/debug/gpio 可以看到每个gpio都有对应的编号&#xff0c;…

火语言RPA--火语言界面应用多窗体详解

多窗体 界面应用建立时默认加载一个窗体&#xff0c;若是程序运行时需要多个窗体配合&#xff0c;在通常情况下&#xff0c;您可将多窗体绑定在UI控件事件中&#xff0c;由界面交互来打开多窗体。 本章将介绍下如何建立多窗体以及在应用中如何运用多窗体完成多种场景的设置。 …

源代码防泄密怎么做?最好用的12款源代码加密软件推荐

源代码是企业的核心资产之一&#xff0c;其安全性直接关系到产品的竞争力和市场地位。防止源代码泄密是企业信息安全中的重中之重&#xff0c;本文将介绍几种有效的源代码防泄密方法&#xff0c;并推荐12款优秀的源代码加密软件。 1. 代码审查与权限管理 通过严格的代码审查流…

【MySQL】用户管理——用户、用户信息、创建用户、删除用户、修改用户密码、数据库的权限、给用户权限、回收权限

文章目录 MySQL1. 用户管理1.1 用户1.1.1 用户信息1.1.2 创建用户1.1.3 删除用户1.1.4 修改用户密码 1.2 数据库的权限1.2.1 给用户权限1.2.2 回收权限 MySQL 1. 用户管理 为什么MySQL要引入用户管理&#xff1f; 如果我们只能使用root用户&#xff0c;这样存在安全隐患。因为r…

[C++][opencv]基于opencv实现photoshop算法可选颜色调整

【测试环境】 vs2019 opencv4.8.0 【效果演示】 【核心实现代码】 SelectiveColor.hpp #ifndef OPENCV2_PS_SELECTIVECOLOR_HPP_ #define OPENCV2_PS_SELECTIVECOLOR_HPP_#include "opencv2/core.hpp" #include "opencv2/imgproc.hpp" #include "…

Mariadb数据库本机无密码登录的问题解决

Mariadb数据库本机无密码登录的问题解决 安装了mariadb后&#xff0c;发现Mariadb本机无密码才能登录 百度了很多文章&#xff0c;发现很多人是因为root的plugin设置的值不正确导致的&#xff0c;unix_socket可以不需要密码&#xff0c;mysql_native_password 是正常的。 解…

NLP_情感分类_预训练加微调方案

文章目录 项目背景代码导包一些模型以及训练的参数设置定义dataset定义模型读取数据声明训练及测试数据集将定义模型实例化打印模型结构模型训练测试集效果 同类型项目 项目背景 项目的目的&#xff0c;是为了对情感评论数据集进行预测打标。在训练之前&#xff0c;需要对数据…

Datawhale X 魔搭 AI夏令营 第四期魔搭-AIGC文生图方向Task2笔记

了解一下 AI生图技术 的能力&局限 对所有人来说&#xff0c;定期关注AI生图的最新能力情况都十分重要&#xff1a; 对于普通人来说&#xff0c;可以避免被常见的AI生图场景欺骗&#xff0c;偶尔也可以通过相关工具绘图 对于创作者来说&#xff0c;通过AI生图的工具可以快速…

全球 30 万台游戏服务器的 PlayFlow Cloud 如何通过 DigitalOcean 实现动态扩展

“我在 DigitalOcean 上首次接触了 Kubernetes。设置 Kubernetes 集群非常简单&#xff0c;使我能够轻松自动化扩展我们的游戏服务器。”——Haseeb Sheikh&#xff0c;PlayFlow Cloud 创始人兼首席执行官 PlayFlow Cloud 是由 Haseeb Sheikh 创立的&#xff0c;旨在通过简化游…

13 Listbox 组件

13 Listbox 组件 Tkinter 的 Listbox 组件是一个用于显示列表项的控件&#xff0c;用户可以从中选择一个或多个项目。以下是对 Listbox 组件的详细说明和一个使用案例。 Listbox 组件属性 基本属性 width: 控件的宽度&#xff0c;通常以字符数为单位。height: 控件的高度&a…

Docker 网络代理配置及防火墙设置指南

Docker 网络代理配置及防火墙设置指南 背景 在某些环境中&#xff0c;服务器无法直接访问外网&#xff0c;需要通过网络代理进行连接。虽然我们通常会在 /etc/environment 或 /etc/profile 等系统配置文件中直接配置代理&#xff0c;但 Docker 命令无法使用这些配置。例如&am…

Midjourney提示词——《环太平洋》机甲专场(附公式)

前言 本篇为大家带来《环太平洋》的机甲提示词&#xff0c;文末附公式&#xff0c;有需要的可以直接复制点击下方阅读原文尝试使用哦~ 1、危险流浪者 Gypsy Danger, standing tall and heroic, dramatic lighting highlighting the metal plates, deep blue and silver color…

[图解]需要≠需求-《分析模式》漫谈

1 00:00:00,760 --> 00:00:02,910 今天的《分析模式》漫谈 2 00:00:02,920 --> 00:00:04,180 我们来说一下 3 00:00:04,490 --> 00:00:06,490 需要不等于需求 4 00:00:10,490 --> 00:00:11,760 还是第一章 5 00:00:13,120 --> 00:00:15,020 这里 6 00:00:1…

双胞胎命名有哪些特别之处?如何体现两者之间的联系与区别?

双胞胎命名艺术探秘 问题&#xff1a; 双胞胎命名有哪些特别之处&#xff1f;如何体现两者之间的联系与区别&#xff1f; 起尔网-免费取名|大师起名|宝宝起名|新生儿取名|男孩女孩在线起名姓名测试评分网起尔网-免费在线宝宝起名|新生儿取名|男孩女孩在线起名网&#xff0c;龙…

数据结构(学习)2024.8.6(顺序表)

今天开始学习数据结构的相关知识&#xff0c;大概分为了解数据结构、算法&#xff1b;学习线性表&#xff1a;顺序表、链表、栈、队列的相关知识和树&#xff1a;二叉树、遍历、创建&#xff0c;查询方法、排序方式等。 目录 一、数据结构 数据 逻辑结构 1.线性结构 2.树…

Ubuntu20.04 源码安装 OMPL 与 Moveit

文章目录 一、源码安装OMPL1.1 先检查是否已安装二进制 ompl1.2 若已经提前安装二进制&#xff0c;需先行卸载1.3 OMPL官网安装教程 二、源码安装 moveit2.1 先检查是否已安装二进制Moveit2.2 源码安装 Moveit2.2.1、更新软件包2.2.2、安装依赖2.2.3、创建Moveit工作空间2.2.4…

<Qt> 系统 - 文件

目录 一、Qt文件概述 二、输入输出设备类 三、文件读写类 四、文件和目录信息类 一、Qt文件概述 文件操作是应用程序必不可少的部分。Qt 作为一个通用开发库&#xff0c;提供了跨平台的文件操作能力。Qt 提供了很多关于文件的类&#xff0c;通过这些类能够对文件系统进行操…