C语言:指针与数组易错辨析

前言:

在学校学习指针和数组的联系时,对指针与数组的结合产生了很大的疑惑,后来不断查找资料,本人对指针与数组的综合有了一定的理解,现进行综合讨论辨析

数组指针:

数组指针,即为指向数组类型的指针,该指针指向了一个数组

int (*p)[4];//定义一个数组指针,该指针指向一个数组arr[4]

当然,数组指针还能指向二维数组

int arr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int (*p)[4]=arr;
//p指向一个二维数组arr
//p指向arr[0]
//p+1或p[1]指向arr[1]

指针数组:

指针数组,即为数据类型为指针的数组,其中指针指向其他数组

int arr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int (*p)[4]=arr;
//p为数组指针
int *arr_p[3]={p[0],p[1],p[2]};
//arr_p为指针数组
//arr_p[0]为指向arr[0]的指针

指针指针:

指针指针,即为指向指针的指针

int arr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int (*p)[4]=arr;
//p为数组指针
int *arr_p[3]={p[0],p[1],p[2]};
//arr_p为指针数组
//arr_p[0]为指向arr[0]的指针
int **pp=arr_p;
//pp为指针的指针

图解:

# include<stdio.h>int main(){int m[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int (*p)[4]=m;int *mp[3]={m[0],m[1],m[2]};int **pp=mp;for(int i=0;i<3;i++){for(int j=0;j<4;j++){printf("%-4d,",pp[i][j]);}printf("\n");}return 0;
}

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

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

相关文章

OpenAI 认为超人工智能即将来临,并希望构建工具来控制它

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

机器学习中数据的特征表示

在实际应用中&#xff0c;数据的类型多种多样&#xff0c;比如文本、音频、图像、视频等。不同类型的数据&#xff0c;其原始特征的空间也不相同。比如一张灰度图像&#xff08;像素数量为 &#x1d437;&#xff09;的特征空间为 [0, 255]&#x1d437;&#xff0c;一个自然语…

深入理解 hash 和 history:网页导航的基础(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Windows VC++提升当前进程权限到管理员权限

Windows VC提升当前进程权限 Windows VC提升当前进程权限到管理员权限 Windows VC提升当前进程权限到管理员权限 有时候Windows下我们需要提升当前进程的权限到管理员权限&#xff0c;相关VC代码如下&#xff1a; #ifndef SAFE_CLOSE_HANDLE #define SAFE_CLOSE_HANDLE(handl…

二维差分详解

前言 上一期我们分享了一维差分的使用方法&#xff0c;这一期我们将接着上期的内容带大家了解二位差分的使用方法&#xff0c;话不多说&#xff0c;LET’S GO!&#xff08;上一期链接&#xff09; 二维差分 二维差分我们可以用于对矩阵区间进行多次操作的题。 二维差分我们还…

springAop有哪五种通知类型?可根据图标查看!

Spring AOP的通知类型有以下几种&#xff08;后面是图标变化&#xff09;&#xff1a; 1.Before通知&#xff1a; 在目标方法执行前执行。 上白下红&#xff0c;方法前执行。 2.After通知&#xff1a; 在目标方法执行后&#xff08;无论是否发生异常&#xff09;执行。 图标…

文件操作(一、fgets和fputs、fscanf和fprintf、fread 和 fwrite、fopen和fclose、fgetc和fputc)

目录 一、文件的概念 1. 什么是文件&#xff1f;​ 2. 为什么使用文件&#xff1f;​ 3.分件的分类 3.1 程序文件​ 3.2 数据文件​ 3.3磁盘文件: 3.4设备文件: 4.文件名​ 二、二进制文件和文本文件&#xff1f;​ 文本文件与二进制文件区别 三、流和标准流 3.1流…

libevent入门教程

文章目录 前言libevent-API调用的基本流程给事件提供缓冲区 前言 本文是libevent的入门文档。本文不涉及&#xff0c;这个库在某些方面的具体使用。 本文内容来自A tiny introduction to asynchronous IO。通过这篇链接&#xff0c;我们可以了解libevent的基本使用。在开始之…

记录一下github深度学习的错误

1.[visdom]无法正常启动服务问题解决 在Anaconda命令窗口中&#xff1a; 使用python -m visdom.server启动visdom服务时&#xff0c;卡在&#xff1a; Checking for scripts. Downloading scripts, this may take a little while 无法下载和启动服务。 ERROR&#xff1a;由…

设计模式-策略(Strategy)模式

又被称为政策&#xff08;方针&#xff09;模式策略模式(Strategy Design Pattern)&#xff1a;封装可以互换的行为&#xff0c;并使用委托来决定要使用哪一个策略模式是一种行为设计模式&#xff0c;它能让你定义一系列算法&#xff0c;并将每种算法分别放入独立的类中&#x…

select、poll、epoll 区别有哪些

文章目录 select、poll、epoll 区别有哪些&#xff1f;select&#xff1a;poll&#xff1a;epoll&#xff1a; select、poll、epoll 区别有哪些&#xff1f; select&#xff1a; 它仅仅知道了&#xff0c;有 I/O 事件发生了&#xff0c;却并不知道是哪那几个流&#xff08;可…

[MySQL]数据库概述

目录 1.什么是数据库 2.数据库分类 2.1关系型数据库 2.2非关系型数据库 1.什么是数据库 我们知道&#xff0c;存储数据可以使用文件来存储。那么为什么我们还要大费周章的去设计和使用数据库呢&#xff1f; 因为文件保存数据有以下几个缺点&#xff1a; 1.文件的安全性不…

浅谈MapReduce

MapReduce是一个抽象的分布式计算模型&#xff0c;主要对键值对进行运算处理。用户需要提供两个自定义函数&#xff1a; map&#xff1a;用于接受输入&#xff0c;并生成中间键值对。reduce&#xff1a;接受map输出的中间键值对集合&#xff0c;进行sorting后进行合并和数据规…

clickhouse函数记录

日期函数 SELECT formatDateTime(create_time,%Y-%m-%d) AS time FROM xx.xx;

xtu oj 1171 Coins

题目描述 一个均质硬币抛n次&#xff0c;求不存在连续2次为正面的方案数。 输入 每行一个正整数n&#xff0c;n≤40。如果n为0&#xff0c;表示输入结束&#xff0c;不需要处理。 输出 每行输出一个结果&#xff0c;为一个整数。 样例输入 1 2 3 0样例输出 2 3 5 AC代…

2023-12-16 课后练习(复习+结构体练习)

题目&#xff1a;分式运算&#xff0c;1-1/21/3-1/4…1/99-1/100 代码&#xff1a; #include<stdio.h> int main() {int i 1;//项数&#xff0c;初始值为1double deno 2;//分母&#xff0c;初始值为2&#xff0c;从第二项开始double n 1;//项的数值&#xff0c;初始…

安路IP核应用举例(OSC、UART)

1.OSC(内部振荡器) 按照Project->New Project顺序新建工程后&#xff0c;后按照Tools->IP Generator顺序&#xff0c;创建IP核&#xff0c;如下图&#xff1a; 安路FPGA的内置OSC振荡模块频率可选30MHz、60MHz。 可选Verilog或VHDL语言。 如图&#xff0c;生成的.v文件只…

软件测试计划文档

软件测试文档 【B站最系统的软件测试教程】阿里兼字节大佬200小时讲完的测试教程&#xff0c;全程干货无废话&#xff01;学完即可就业&#xff0c;别在盲目自学&#xff01;&#xff01;&#xff01; 1.引言 1.1编写目的 为此次飞机大战软件提供完善的测试指导&#xff0c;组…

【Linux】内核结构

一、Linux内核结构介绍 Linux内核结构框图 二、图解Linux系统架构 三、驱动认知 1、为什么要学习写驱动2、文件名与设备号3、open函数打通上层到底层硬件的详细过程 四、Shell Shell脚本 一、Linux内核结构介绍 Linux 内核是操作系统的核心部分&#xff0c;它负责管理系…

“Java 已死、前端已凉”?技术变革与编程语言前景:Java和前端的探讨

前端已死话题概论 本文讨论了近期IT圈中流传的“Java 已死、前端已凉”言论。我们审视了这些言论的真实性&#xff0c;并深入探讨了技术行业的演变和新兴技术的出现对编程语言和前端开发的影响。通过分析历史发展、当前趋势和未来展望&#xff0c;我们提供了对这些话题更深层次…