数组与指针1

YOLOv11 改进 - 即插即用 | PST金字塔稀疏Transformer:粗粒度到细粒度推理优化特征提取,提升复杂场景适应性 本文介绍了金字塔稀疏 Transformer(PST)与 YOLOv11 的结合。主流基于注意力的特征融合方法计算复杂度高、实现难度大,作者提出 PST 模块,融合粗到细令牌选择与共享注意力参数机制,在保留空间细节的同时降低计算量。该模块通过层级化注意力机制、动态令牌选择与参数共享,实现高效多尺度特征融合 阅读详情

1. 一维数组

1.1 本质

数据类型是一种构造类型,内存是一段连续的存储区域。数据类型,决定了连续内存的访问方式,包括起始地址,步长,寻址范围。

1.2 初始化

 int array[10] = {1, 2, 3};  //部分初始化
 int array1[10] = {[3] = 10};
 int array2[10] = {0};  //清零(部分初始化会把其余的元素置0)
 int array3[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 11, 22};    越界不检

1.3 使用

数组名是数组的唯一标识符,数组中的每一个元素都是没有名字的。
数组名有两重含义。

  • 作为数组名时,它是一种构造数据类型
#include <stdio.h>

int main(void)
{
    int array[10];

    printf("&array = %p\n", &array);
    printf("&array+1 = %p\n", &array+1);

    return 0;
}

此时可以观察到结果,&array+1跳跃的是一个int[10]的长度,此时&array是一个数组指针,可以看成是 int (*p)[10],这个指针的步长是int[10].此时对数组名取地址代表访问的是数组整体。

  • 作为访问成员时,它是首元素的地址
#include <stdio.h>

int main(void)
{
    int array[10];

    printf("array = %p\n", array);
    printf("array + 1 = %p\n", array + 1); 

    return 0;
}

此时观察的话,array+1跳跃的是一个int的长度,此时array相当于一个int *的指针,步长为一个int。
array[i] == *(array+i) == i[array]
1.4 错误的认识及纠正

对一维数组取地址(reference),等价于数组指针而不是二级指针.

int array[10];
int (*pa)[10] = &array;     //正确
int **pa = &array;      //错误

1.5 关于&(reference)和*(dereference)

两种操作符代表的是互逆的操作,有些时候可能认为是取地址和取值,但在和数组结合的时候,对一维数组进行&(reference)操作,并不是想当然的二级指针。所以一般认为是引用和解引用。

2. 二维数组

2.1. 本质

二维数组的本质也是一个一维数组,只是数组成员,由基本数据类型变成了构造数据类型(一维数组)

2.2. 初始化

行可以省,列不可以省
部分初始化和清零依然适用

2.3. 访问

  • 作数组名时
#include <stdio.h>

int main(void)
{
    int array[3][4];
    printf("&array = %p\n", &array);
    printf("&array+1 = %p\n", &array+1);

    return 0;
}

当从整体来看的时候,&array代表的是一个二维数组整体的地址,即是一个数组指针int (*array)[3][4],那么此时这个指针的步长即int [3][4],即12个int的跨度。

  • 访问成员时
#include <stdio.h>

int main(void)
{
    int array[3][4];

    printf("array = %p\n", array);
    printf("array + 1 = %p\n", array + 1); 

    return 0;
}

此时差了个int[4]个长度,此时array表示第0行首地址,array+i表示第i行首地址。此时array相当于一个 int(*array)[4]的指针,此时指向在第一行首地址。

Sigrity SPEED2000 General SI Simulation模式如何进行信号仿真分析操作指导-DDR 本例是几个简单的板载DDR颗粒的结构,本例中使用General SI Simulation模式仿真DDR信号,结构拓扑如下,Addcmd,clk,cke都是T拓扑。Sigrity SPEED2000 General SI Simulation模式可以对信号进行仿真分析,仿真将电源视为理想电源,以下图为例进行说明。DQS的接收端模型设置为DQS_34_ODT60_1333。模式如何进行信号仿真分析操作指导-DDR。附带驱动和接收端的IBIS模型。 阅读详情

相关推荐

后向投影算法(BPA)-SAR成像算法系列(二)

SAR成像算法:后向投影算法(BPA)原理介绍及实现步骤解析。

yjh_2019的博客 1万+

C语言数组

文章目录一、一维数组的创建和初始化1.数组的创建2.数组的初始化3.一维数组的使用4.一维数组在内存中的存储二、二维数组的创建和初始化1.二维数组的创建2.二维数组的初始化3.二维数组的使用4.二维数组在内存中的存储5.数组越界三、小练习1.三子棋2.扫雷 一、一维数组的创建和初始化 1.数组的创建 数组是一类相同元素的集合。 int arr[10]; 如上述代码,int 是数组的类型,arr是数组名,[ ]是下标引用操作符,10 是一个常量(也可是常量表达式),用来指定数组的大小。 以下举几个例子 in

Snakra的博客 487

鸿蒙手机卸载内置应用 adb连接

**傻瓜式删除鸿蒙系统内置应用,自己亲测有效。**

JJDXBT的博客 3万+

数组指针详解

数组指针是指向数组的指针,用来存放数组的地址。

2301_77446344的博客 7601

混合编程实战:C#集成C++ PCL点云处理库,打造跨语言动态链接库

本文详细介绍了C#与C++混合编程实战,重点讲解如何通过动态链接库(DLL)集成C++ PCL点云处理库,实现跨语言协作。内容涵盖环境配置、PCL功能封装、C#调用DLL的完整方案,以及性能优化和错误处理等进阶技巧,帮助开发者高效处理大规模点云数据,提升工业软件开发效率。

weixin_42620913的博客 383

DDR4内存PCB设计实战:8层板Fly-by拓扑信号完整性优化

本文深入探讨了DDR4内存条在8层PCB板上采用Fly-by拓扑时的信号完整性优化实战。文章详细解析了层叠规划、阻抗控制、电源分割、等长布线及串扰抑制等关键设计要点,并强调了仿真验证的重要性,为硬件工程师提供了从理论到实践的完整设计指南与自查清单。

weixin_29296241的博客 340

数组指针的使用方法

数组指针与指针数组、数组指针的用法、字符串排序输出(代码实例)

qq_45570844的博客 2万+

AI翻译工具自动翻译日语视频生成srt中文字幕,支持离线轻松生成任意日语视频字幕!可选择支持显卡模式和cpu模式低显存也能用

【AI离线字幕神器:日语视频一键转中文字幕】推荐一款基于Faster-Whisper的本地化字幕工具,可离线生成日语视频的中文字幕(.srt格式),支持CPU/GPU加速处理。实测1小时视频最快4-5分钟完成翻译,无需联网保护隐私。操作简单只需拖拽文件,支持批量处理音频(mp3/wav)和视频(mp4/mkv)文件,还能自定义输出格式和参数调整。特别适合需要观看无字幕日语资料的用户,堪称技术宅必备神器。下载地址附后,包含详细使用教程和参数配置说明。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

数组指针1

#include<stdio.h> int main() { int arr[3][4] = {{11,22,33,44,},{55,66,77,88},{99,111,333,222}}; int *p; //p = &arr[0][0]; //p = arr; //定义一个指针,让指针偏移的时候,也偏移对应大小的数组 //数组指针,定义一个指针,指向一个数组 //数组指针才是真正等同于二维数组名 int (*p2)[4]; p2 = arr; printf("p2

phelps00的博客 130

matlab之作图设置游标的精度

matlab画出的figure游标的精度往往是固定的,这就对我们的调试和查看数据造成了不便。 那么怎么修改游标的精度呢? 首先,获取游标dcm_obj = datacursormode(gcf);然后对游标的精度进行设置:set(dcm_obj,'UpdateFcn',@NewCallback)这个NewCallback是什么东西呢?这是一个可以返回游标精度的函数,具体内容如下:function

落日之城 8959

【制作100个unity游戏之28】花半天时间用unity复刻童年4399经典小游戏《黄金矿工》(附带项目源码)

在游戏发展史上,有些游戏以其简单而耐玩的特性,深深地烙印在了玩家的记忆中。《黄金矿工》就是其中之一,它曾经在4399等游戏平台上掀起了一股游戏热潮。这款游戏不仅给无数玩家带来了欢乐,还让他们体验到了挖掘金矿的刺激与乐趣。在这个项目中,我们将花费半天的时间,利用Unity引擎,重新打造这款经典小游戏。通过复刻《黄金矿工》,我们不仅是在向童年的回忆致敬,更是在挖掘游戏设计的精髓。在这个过程中,我们将学习如何实现游戏的核心玩法,设计简洁而有效的游戏机制。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2902

指针+1和指针++区别以及数组名++与数组名+1区别

指针p+1其实并没有对p进行赋值操作,并没有改变指针p的指向,p依旧指向原来的元素,指向下一个元素的是p+1看下面的代码,p+1并没有累计给下一次循环的p;也就是没改变p的指向 p++对指针进行了赋值操作,相当于p=p+sizeof(p的基类型);改变了p的指向,看下面代码,p++的值累计给了下一次循环 数组名++int arr[]={0};arr++;编译器会报错,为什么?数组名是指针常量,而++是赋值操作,常量不能进行赋值操作,所以报错数组名+1int arr[]={0};arr+1;编译器不会

weixin_58791060的博客 2124

C# 上位机之海康工业相机开发(SDK)实战教程

海康工业相机的C#开发核心是基于MVS SDK的“初始化→枚举→连接→采集→释放”流程,其中图像回调处理和格式转换是关键。严格按照SDK文档处理设备类型(网口/USB)和像素格式;及时释放图像资源,避免内存泄漏;错误码是排查问题的重要依据(可参考SDK中的“错误码说明”文档)。掌握这些基础后,可结合机器视觉算法(如OpenCV)实现缺陷检测、尺寸测量等高级功能,构建完整的工业视觉系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3836

关于指针与数组下标加1的问题

我们在学习C语言的时候经常会碰到指针或者数组下标加1,这也是个令大家非常头疼的问题,那就是它加1以后实际上是加了多少,指针或者数组的下标移动到了哪里。 下面我就通过举几个例子来告诉大家答案。 例1: #include &lt;stdio.h&gt; int main(int argc, char **argv) { int a[3]={ 0 }; ...

tjy199610_10的博客 2229

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C++ 数组与指针arr &arr arr+1 &arr+1

&arr arr+1 &arr+1

qq_31543867的博客 1215

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

数组指针加1的结果

  一般而言,对指针进行加1操作,得到的将是下一个元素的地址,一个类型为T的指针移动,是以sizeof(T)为移动单位。 #include&lt;stdio.h&gt; int main() { int a[5]={1,2,3,4,5}; int b[100]; int *ptr=(int*)(&amp;a+1); //&amp;a...

小时候挺菜的博客 1160

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

数组的地址+1 和 指向数组的指针+1 区别

&a+1,相当于加了数组的一个单位(也就是一行),即&a[5]。并不是网上流传的错误答案加sizeof大小。int a[5]={1,2,3,4,5} int *p=(int *)(&a+1) printf("%d", *(p-1))&a 和 a 都是指数组的第一个元素所在地址 &a+1,相当于加了数组的一个单位(也就是一行),即&a[5] 指针p-1相当于前移一个元素,输出为5

kevin的博客 6215

关于初级指针--指针数组与数组指针理解1

关于指针数组与数组指针1

申俏雅的博客 457

在数组中,指针+1指的是什么?

在数组中,指针+1指的是什么? eg: int arr[10]={1,2,3}; p++; *p=10; 那么在这个程序片段中p++究竟是什么意思: (1) 加一个字节? (2) 加一个单元格?√ (3) 加一个数组? 在数组中一个位置占4个字节,数组储存用16进制这样的话只能每次增加一个单元格,否则就会覆盖原来的数据,所以,指针+1 其实是加一个单元格。 指针的算术运算 1. ...

qq_43824159的博客 3749

指针、数组指针、指针数组指向一维数组,指针加1或减1会输出什么?

#include <stdio.h> int main(int argc,char* argv[]) { char c[] = {'a','b','c'}; //==================指针,指向数组========================= char* q = NULL; q = c; //指向数组的初始地址 q = q + 1; //指向数组的下一个值 printf("%c\n",q[0]); //输出b //=============

weixin_38727229的博客 1106

指针、数组指针、指针数组指向二维数组,指针加1或减1会输出什么?

int main(int argc, char* argv[]) { char c[][2] = {{'a','b'},{'c','d'},{'e','f'}}; printf("==================指针,指向数组=========================\n"); char* q = NULL; q = c[0]; //指向数组的初始地址 q = &c[0][0]; printf("%c\n",q[5]); //输出f q = q + 1; //

weixin_38727229的博客 946

4.1 C语言- -指针解析 指针数组与数组指针

#define Photo_Sample_Read_Base_Point ((photo_sample_data_stru *) (0x7000000)) //四通道荧光采样数据基址 typedef struct { unsigned short ad[6][11][1300]; //荧光采样数据2500X6字 } photo_sample_data_stru; //四通道荧光采样数据结构hoto_sample_data_stru *

oDuanYanGuHong的博客 3656

指针数组1

所谓指针数组是指由若干个具有相同存储类型和数据类型的指针变量构成的集合。指针数组名表示该指针数组的起始地址。同样的道理 *代表取地址中的数据。指针数组的一般说明形式。

weixin_64975583的博客 58

数组中指针不同加1的区别

array和&array的值是一样的,但是他们代表的意义完全不一样,array是数组首元素的首地址(和。“+1”就是偏移量问题:一个类型为T的指针的移动,是以sizeof(T)为移动单位。当数组名作为sizeof操作符和单目操作符&的操作数时。,而不是指向数组的指针的长度。取一个数组名的地址所产生的是一个。一样),&array是整个数组array的首地址.后返回的指针便是指向数组的指针,跟a(一个指向。,而不是一个指向某个指针常量的指针。的指针)在指针的类型上是有区别的。

761899457@qq.com 330

数组、指针、函数1

1、  指针和数组的关系 int a [10]={0, 1, 2, 3, 4, 5, 6, 7 ,8, 9} , v;  v=a [0];                //也可写成:v=*a;  v=a [3];                //也可写成:v=*(a+3);  v=a [4];                //也可写成:v=*(a+4); 

canvas_kin的博客 204

4-1 指针数组与数组指针

四、C语言复杂表达式与指针高级应用 4.1、 指针数组与数组指针 4.1.1 、字面意思来理解指针数组与数组指针 (1)指针数组的实质是一个数组,这个数组中存储的内容全部是指针变量。 (2)数组指针的实质是一个指针,这个指针指向的是一个数组。 4.1.2、 分析指针数组与数组指针的表达式 (1)int *p[5]; int (*p)[5]; int *(p[5]); (2)一般规律:int p;(p是一个指针);int p[5];(p是一个数组)总结:我们在定义一个符号时,关键在于:首先要搞清楚你定义的

成长的博客 153
上一篇: 一次重定向引起的异步IO
下一篇: fifo实现本地简单聊天程序
Linux_forker
博客等级 码龄11年 3粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值