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

news2024/10/6 10:31:20

前言:

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

数组指针:

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

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.coloradmin.cn/o/1314332.html

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

相关文章

爬虫akamai案例:DHL国际物流

声明&#xff1a; 该文章为学习使用&#xff0c;严禁用于商业用途和非法用途&#xff0c;违者后果自负&#xff0c;由此产生的一切后果均与作者无关 一、Akamai简介 Akamai是一家提供内容传递网络&#xff08;CDN&#xff09;和云服务的公司。CDN通过将内容分发到全球各地的服…

工资计算_分支结构 C语言xdoj63

问题描述 小明的公司每个月给小明发工资&#xff0c;而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资为S元&#xff0c;则他应交的个人所得税按如下公式计算&#xff1a; 1&#xff09; 个人所得税起征点为3500元&#xff0c;若S不超过3500&#xff0c;则…

spring 笔记七 Spring JdbcTemplate

文章目录 Spring JdbcTemplateJdbcTemplate概述JdbcTemplate开发步骤Spring产生JdbcTemplate对象 Spring JdbcTemplate JdbcTemplate概述 它是spring框架中提供的一个对象&#xff0c;是对原始繁琐的JdbcAPI对象的简单封装。spring框架为我们提供了很多的操作模板类。例如&am…

【离线】牛客小白月赛39 G

登录—专业IT笔试面试备考平台_牛客网 题意 思路 考虑离线Bit做法 这种离线Bit&#xff0c;一般都是去考虑二维数点就能写清楚了 确定好两维&#xff1a;x 轴是1 ~ n&#xff0c; y 轴是 k 的大小 然后去遍历值域&#xff0c;如果值域很大的话需要排序离散化&#xff0c;但…

Netty介绍

1. Netty介绍 是一个异步的、基于事件驱动的网络应用框架&#xff0c;用以开发高性能&#xff0c;高可靠性的网络io程序。Netty主要针对在TCP协议下&#xff0c;面向clients端的高并发应用&#xff0c;或者peer-to-peer场景下大量数据持续传输的应用。Netty本质上是一个NIO框架…

Pytorch从零开始实战13

Pytorch从零开始实战——ResNet与DenseNet探索 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——ResNet与DenseNet探索环境准备数据集模型选择开始训练可视化总结 环境准备 本文基于Jupyter notebook&#xff0c;使用Python3.8&#xff0c;P…

Android 顶部对齐宽度撑满高度等比例缩放及限制最大最小高度

一 示例 二 代码 <?xml version"1.0" encoding"utf-8"?> <FrameLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent&qu…

如何用 Cargo 管理 Rust 工程系列 乙

以下内容为本人的学习笔记&#xff0c;如需要转载&#xff0c;请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/__nvVZYti-G05QJHIp_f8Q 编译程序 这次我们用 cargo 来启动编译&#xff0c;cargo 提供了 build 指令来调度工具构建并输出软件。cargo build 只…

【Spring教程29】Spring框架实战:从零开始学习SpringMVC 之 服务器响应知识全面详解

目录 1 环境准备2 响应页面3 返回文本数据4 响应JSON数据5 知识点总结 欢迎大家回到《Java教程之Spring30天快速入门》&#xff0c;本教程所有示例均基于Maven实现&#xff0c;如果您对Maven还很陌生&#xff0c;请移步本人的博文《如何在windows11下安装Maven并配置以及 IDEA配…

菜鸟学习日记(python)——函数

函数是组织好的&#xff0c;用来实现某些功能的代码块&#xff0c;它可以重复使用。 函数能提高应用的模块性&#xff0c;和代码的重复利用率。Python提供了许多内建函数&#xff0c;比如print()。但我们也可以自己创建函数&#xff0c;这被叫做用户自定义函数。 定义函数 用…

Kubernetes 的用法和解析 -- 2

一.集群常用指令 1.1 基础控制指令 # 查看对应资源: 状态 $ kubectl get <SOURCE_NAME> -n <NAMESPACE> -o wide [rootkube-master ~]# kubectl get pods -n kuboard -o wide# 查看对应资源: 事件信息 $ kubectl describe <SOURCE_NAME> <SOURCE_NAME_R…

Android--UML类图使用详解

明敕星驰封宝剑&#xff0c;辞君一夜取楼兰 一&#xff0c;定义 类图(Class diagram)是显示了模型的静态结构&#xff0c;特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。它既用于应用程序的系统分…

C语言练习(检查一个数是否为质数 、剪绳子)

目录 检查一个数是否为质数 题目描述 输入格式 输出格式 样例输入 样例输出 解题思路 代码示例 剪绳子 题目描述 输入格式 输出格式 样例输入 样例输出 解题思路 代码示例 检查一个数是否为质数 题目描述 输入一个正整数&#xff0c;检查该数是否为质数 输入格式 输入一个正整…

linux系统的u盘/mmc/sd卡等的支持热插拔和自动挂载行为

1.了解mdev mdev是busybox自带的一个简化版的udev。udev是从Linux 2.6 内核系列开始的设备文件系统&#xff08;DevFS&#xff09;的替代品&#xff0c;是 Linux 内核的设备管理器。总的来说&#xff0c;它取代了 devfs 和 hotplug&#xff0c;负责管理 /dev 中的设备节点。同时…

github 学习番外篇

我们可以按照仓库开始的提示提交仓库 不知道为什么 出现了 我用 git branch 查看了一下&#xff0c;竟然没发现分支 后来发现是只有commit以后才会显示这个分支 后来显示 这是因为本地和远程仓库不同步的原因 这时候我们就需要git pull 一下 发现两个仓库由于不关联不能git…

垃圾回收 (GC) 在 .NET Core 中是如何工作的?

提起GC大家肯定不陌生&#xff0c;但是让大家是说一下GC是怎么运行的&#xff0c;可能大多数人都不太清楚&#xff0c;这也很正常&#xff0c;因为GC这东西在.NET基本不用开发者关注&#xff0c;它是依靠程序自动判断来释放托管堆的&#xff0c;我们基本不需要主动调用Collect(…

山峰个数 - 华为OD统一考试

OD统一考试 分值: 100分 题解: Java / Python / C++ 题目描述 给定一个数组,数组中的每个元素代表该位置的海拔高度。0表示平地,>=1时表示属于某个山峰,山峰的定义为当某个位置的左右海拔均小于自己的海拔时,该位置为山峰。数组起始位置计算时可只满足一边的条件。 …

原子学习笔记1——阻塞和非阻塞IO

阻塞式 I/O 顾名思义就是对文件的 I/O 操作&#xff08;读写操作&#xff09;是阻塞式的&#xff0c;非阻塞式 I/O 同理就是对文件的I/O 操作是非阻塞的。 当对文件进行读操作时&#xff0c;如果数据未准备好、文件当前无数据可读&#xff0c;那么读操作可能会使调用者阻塞&…

Linux---cp和mv命令选项

1. cp命令选项 命令选项说明-i交互式提示-r递归拷贝目录及其内容-v显示拷贝后的路径描述-a保留文件的原有权限 cp -i命令选项效果图: cp -r命令选项效果图: cp -v命令选项效果图: cp -a命令选项效果图: -a选项说明: -a 选项还支持拷贝文件夹并且文件夹中的文件权限不丢失 …

WPF-附加属性《十二》

非常重要 依赖属性和附加属性&#xff0c;两者是有关系的&#xff0c;也是有些区别的&#xff0c;很多时候&#xff0c;可能会把两者混淆了。 附加属性&#xff08;Attach Property&#xff09; 顾名思义&#xff0c;就是附加上面的属性&#xff0c;自身是没有的&#xff0c;…