C语言学习笔记—指针(三)指针数组、数组指针

C语言学习—数组指针和指针数组的区别 C语言中数组指针和指针数组的区别 阅读详情

在这里插入图片描述

指针数组

我们还是通过一个例子来看:

#include <stdio.h>
#include <stdlib.h>
int main()
{
	int a = 1;
    int b = 2;
    int c = 3;//三个毫无关系的整型变量
    int arry[3];//多个整数,叫做整数数组
    //这么定义指针数组
    int* p[3];//多个指针,叫做指针数组,数组中的每一项元素都是一个指针变量
    		  //指针变量是存放地址的变量
    p[0] = &a;
    p[1] = &b;
    p[2] = &c;//三个普通没有任何关系的整型变量的地址存入指针数组。
    int i;
    for(i=0;i<3;i++)
    {
			printf("   %d    \n",*(p[i]));
        }
	system("pause");
	return 0;
}

数组指针

指针数组”->多个指针,“数组指针”->一个指针

#include <stdio.h>
#include <stdlib.h>
int main()
{
	
    int arry[3] = {1,2,3};
    
    int (*p)[3];//数组的指针
    
    p = arry;
	system("paus;e");
	return 0;
}

仅仅从上边来看我们看不出区别那么我们看一下偏移值。

#include <stdio.h>
#include <stdlib.h>
int main()
{
	
    int arry[3] = {1,2,3};
    
    int (*p)[3];//数组的指针,强调的是类型,数组的个数,偏移值偏移了整个数组的大小

    
    p = arry;
	int *p2;
	p2 = a;
	printf("数组的地址是%p\n",a);
	printf("数组的地址是%p\n",&a[0]);
	printf ("p数组的地址是%p\n",p);
	printf ("p2数组的地址是%p\n",p2);
	printf ("==============区别=============\n" );
	printf ("p++的结果是:%p\n",++p);
	printf ("p2++的结果是:%p\n",++p2);

	system("paus;e");
	return 0;
}

执行结果:
在这里插入图片描述
0060FEF8 - 0060FEEC = 1 2
0060FEFO - 0060FEEC = 4
由此我们可以知道:
指向数组的指针偏移时偏移的是整个数组的的大小!

数组存储与指针学习笔记(三)指针与数组 主要从嵌入式角度介绍指针与数组的爱恨情仇 阅读详情

相关推荐

AI计算,为什么要用GPU?

几年后,2012年,神经网络之父杰弗里·辛顿(Geoffrey Hinton)的两个学生——亚历克斯·克里切夫斯基(Alex Krizhevsky)、伊利亚·苏茨克沃(Ilya Sutskever),利用“深度学习+GPU”的方案,提出了深度神经网络AlexNet,将识别成功率从74%提升到85%,一举赢得Image Net挑战赛的冠军。根据形态,GPU可分为独立GPU(dGPU,discrete/dedicated GPU)和集成GPU(iGPU,integrated GPU),也就是常说的独显、集显。

经营范围: CTA、SRRC、CCC、移动、电信、联通入库 1675

指针数组概念

指针数组概念

qq_48516121的博客 4067

R语言实战:5分钟搞定GEO单细胞数据(scRNA-seq)下载与整理(附完整代码)

本文详细介绍了如何使用R语言快速下载和整理GEO单细胞数据(scRNA-seq),提供完整的自动化处理代码。从环境准备、数据获取到文件整理和质量检查,涵盖10X Genomics标准格式及非标准数据的处理技巧,帮助生物信息学研究者高效完成数据预处理工作。

weixin_29054399的博客 604

【C语言】数组和指针

数组和指针,十分全面!!

Qiuhan_909的博客 1万+

unity pc运行包导入glb

本文介绍了在Unity中实现GLB/GLTF模型动态导入的方法。主要使用glTFast插件进行模型导入,配合StandaloneFileBrowser实现文件选择功能。文章提供了详细的插件安装方式(包括国内镜像源),并给出了核心导入脚本代码。脚本实现了模型加载、父对象设置、材质修复等功能,解决了常见的材质显示异常问题。该方法支持编辑器和PC平台,兼容不同版本的glTFastAPI,通过简易UI操作即可完成模型导入,适合需要运行时加载3D模型的Unity项目开发。

懒懒的蓝的博客 544

完整指南:从基础到高级使用 Semantic Kernel

通过本文的学习,你已经掌握了从基础到高级的使用方法。安装并配置。使用简单的文本生成和自然语言处理任务。利用任务链和工具扩展构建复杂的工作流。通过记忆管理上下文,创建更智能的应用。扩展多模态处理能力,集成图像和音频分析。将应用部署到云端,并通过 Azure Functions 提供智能服务。无论是构建简单的对话应用,还是创建多模态智能服务,都提供了强大的工具和灵活的扩展机制。希望这篇文章能帮助你更好地理解并运用这个框架,构建出更加智能和高效的应用。

net core ,前端 ,python 全栈开发 2805

C语言 数组指针详解

C语言 数组指针详解

cesheng3410的博客 1万+

nRF开发环境搭建全攻略:VS Code + nRF Connect SDK + Zephyr实战

嵌入式开发中,环境配置往往是新手入门的第一道障碍,尤其面对基于Zephyr RTOS的Nordic nRF平台时,工具链的复杂度常让人望而却步。理解构建系统、SDK版本管理和调试工具之间的协作关系,是高效开发的前提。Zephyr作为开源实时操作系统,通过设备树和Kconfig实现硬件描述与功能配置,而nRF Connect SDK(NCS)则是Nordic基于Zephyr的增强发行版,两者结合为物联网开发提供了强大支持。基于VS Code搭建开发环境,配合west工具管理多仓库、CMake/Ninja执行构

weixin_29188997的博客 227

C语言——指针(数组,函数)

假定该指针变量指向具有N个元素的一维数组,则数组指针变量定义如下:数据类型(*数组指针变量名)[N];

2201_75915488的博客 7007

金融领域强化学习在高频交易中的应用

强化学习(Reinforcement Learning,简称RL)是一种机器学习范式,通过智能体与环境的交互来学习策略,以最大化累计奖励。与监督学习和无监督学习不同,强化学习依赖于动态的反馈机制,智能体通过试错不断优化决策过程。高频交易(High-Frequency Trading,简称HFT)是指在极短时间内进行的大量金融交易,通常利用算法和计算机系统自动执行交易策略。高频交易依赖于高速的数据处理和决策能力,以捕捉市场中的微小价格波动。状态(State):环境在某一时刻的观测,反映了系统的当前情况。

AI天才研究院 893

Fastgpt本地使用Docker Compose 快速部署

修改文件,并执行再执行d重起容器。具体配置,参考配置详解。可以查看日志,在启动容器后,第一次请求网页,会进行配置文件读取,可以看看有没有读取成功以及有无错误日志。进入 FastGPT 容器,可以通过ls data查看目录下是否成功挂载文件。可通过查看配置文件。可能不生效的原因挂载目录不正确配置文件不正确,日志中会提示invalid json,配置文件需要是标准的 JSON 文件。

洛阳泰山的博客 1633

C语言(函数指针数组)详解

指针,指针数组,数组指针,函数指针数组

Raikkonen_love的博客 2万+

31、MSP430FR2355时钟系统与低功耗模式解析

本文详细解析了MSP430FR2355的时钟系统和低功耗模式。首先介绍了时钟系统的组成,包括XT1振荡器、DCO、MODCLK、MCLK、SMCLK和ACLK的功能与配置方法。接着探讨了MSP430FR2355的五种低功耗模式及其配置要点,并分析了时钟系统与低功耗模式之间的协同关系。最后通过实际应用案例展示了如何在具体场景中优化系统功耗。文章旨在帮助开发者充分利用MSP430FR2355的时钟与低功耗特性,实现高性能、低功耗的嵌入式系统设计。

mars5的博客 195

c语言malloc数组后赋值为0_C语言学习笔记(三)指针

0 往期链接Chenglin Li:C语言学习(一)全部知识点Chenglin Li:C语言学习(二)指针函数分配内存1 指针指针式C语言中的一个重要概念,也是C语言的一个重要特色。指针可以有效的表达复杂的数据结构、动态分配内存、有效的利用内存空间。能方便的表示数组和字符串,提高数据处理效率。指针作为函数参数,能使函数调用得到多余1个的值。2 指针开辟内存/* float *DropLowestM...

weixin_36204727的博客 1817

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C语言学习笔记

1结构体结构体是一种集合了多种数据类型的复杂数据类型struct 结构体名数据类型 成员名1;数据类型 成员名2;数据类型 成员名3;......(1)结构体的声明使用及初始化struct 结构体名 变量名;使用:变量名.成员名int age;int cj;a.name;a.age;a.cj;(2)结构体数组:由结构体变量组成的数组2int age;int cj;a[0].name;a[0].age;2共用体:在C语言中不同数据类型的数据可以使用共同的存储区域。

WYSNLCF的博客 109

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C语言学习笔记 内存(三)自定义数据类型(一)结构体(二)数组与指针

结构体数组 每个数组元素都是一个结构体类型的数据就是结构体数组 定义结构体数组一般形式: struct 结构体名{成员表列}数组名[数组长度]; 先声明一个结构体,再用其类型定义结构体数组 struct 结构体名 数组名[数组长度]; 初始化一般就是通过在定义的数组后用{}给各元素依次赋值。 结构体指针 结构体变量的指针就是该结构体变量的起始地址。 结构体变量指针既可以指向结构体变量,结构体数组的元素 结构体变量指针的基类型必须与指向的结构体变量类型相同 struct A{ int

金石就好的博客 247

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C语言学习笔记——指针、数组作为函数参数传递的方式

指针作为函数参数传递一维数组 C 语言中声明了一个数组TYPE array[n],则数组名称array 就有了两重含义: 第一,它代表整个数组,它的类型是TYPE[n]; 第二,它是一个常量指针,该指针的类型是TYPE*,该指针指向的类型是TYPE。 因此,指针作为函数参数传递一维数组有4种形式: #include &amp;lt;stdio.h&amp;gt; #define N 3 float average...

展翅飞翔mxq的博客 1万+

C语言指针数组和数组指针详解

C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分析 VS2019编写简单的C程序示例 简单示例,VS2019调试C语言程序 C语言基础-基本算法 C语言基础-数据类型 C语言中的输入输出函数 C语言流程控制语句 C语言数组——一维数组 C语言数组——二维数组 C语言数组——字符数组 C语言中常用的6个字符串处理函

专注于C语言编程干货分享 5674

(使用C语言详解)指针数组、数组指针、函数指针、函数指针的数组、指向函数指针数组的指针

本文主要讲解了C语言中的五种指针类型:指针数组、数组指针、函数指针、函数指针的数组以及指向函数指针数组的指针。这些指针类型在C语言编程中有着广泛的应用,掌握它们对于深入理解C语言以及进行高效的C语言编程都具有重要意义。指针数组是一种数组,其元素为指针;数组指针则是一个指向数组的指针,它可以指向数组的首地址,也可以指向数组的任一元素。函数指针则是指向函数的指针,通过它我们可以调用函数。函数指针的数组则是一个数组,其元素为函数指针;指向函数指针数组的指针则是一个指针,它指向函数指针数组。

StarPrayers.的博客 6326

嵌入式C语言学习笔记 - 函数、数组、指针

指针变量是用来存放内存地址的变量,在同一CPU构架下,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的。不同类型的指针之间,是不能互相赋值的,void类型的指针打破了上面的观念,void没有任何类型;指针变量占用的大小,和数据类型无关,和编译器相关的(32位:32字节,64位:64字节);变量地址:说的是变量的首地址, &a 取变量a的地址(4字节) 以上基于32位操作系统。void类型的指针,无法获取变量中的数据,也不能进行指针的加减计算;

MM_MG的博客 946

20190329-C语言学习-指针与数组的暧昧关系(下标运算符 | 数组名的本质|指针数组与数组指针)

写在前面的话:本文章的内容是对王利涛老师的《C语言嵌入式Linux编程》系列课程的学习笔记,王老师讲得很好,清晰易懂,写这个博客仅处于学习用途。 目录 下标运算符 对数组的打印有几种方式 为什么指针可以使用[]访问数组?p[i] 为什么数组可以使用*访问数组元素?*(a+i) 下标运算符 数组名的本质 底层实现机制 为什么对数组直接赋值?为什么只有在初始化的时...

weixin_38171577的博客 797

C语言学习笔记——指针

类型变量,可改变指向。

qq_46468829的博客 1570

C语言学习笔记--数组指针和指向数组的指针变量(要求掌握)

一个变量有一个地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。所谓数组的指针是指数组的起始地址数组元素的指针是数组元素的地址。

weixin_46149248的博客 1898

c语言学习笔记之数组指针与指针数组

指针数组和数组指针一直是初学者的心头大患,看见就得避着走,接下来教大家5分钟理解他们。

weixin_67855163的博客 1814

C语言学习之指针总结

C语言的灵魂在于指针,对于初学者来说,对这个灵魂了解的更大程度上体现在难度上,但是实际上也仅仅是由于不熟练,只要学完过后,看几个例子,跟着写几段代码,就会发现其实指针和数组,循环,分支语法之类的运用难度上差不了很多(虽然数组的本质就是指针)。所以,要对自己有信心!接下来正文开始。

aacd2719的博客 2194
上一篇: C语言学习笔记—指针(二)为什么使用指针?
下一篇: C语言学习笔记—指针(四)函数指针、无类型指针、malloc、内存泄漏
Akzeptieren
博客等级 码龄8年 65粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值