【编程语言 · C语言 · 指针和数组】

news/2025/1/12 10:37:13/

指针和数组

指针对于数组特别有用。

当定义各一个数组时, 系统会在内存中为该数组分配一个存储空间, 其数组的名称就是数组在内存中的首地址.若再定义各一个指针变量,并将数组的首地址传给指针变量,则该指针就指向了这个一维数组.

例如:

int *p, a[5];
p=a;

这里a是数组名, 也就是数组的首地址, 将它赋给指针变量p, 也就是将数组a的首地址赋给p.

也可以写成如下形式:

int *p, a[5];
p = &a[0];

使用指针,我们可以指向第一个元素,然后使用地址算法遍历数组: +用于向前移动到存储位置 -用于向后移动到存储位置

int a[5] = {22, 33, 44, 55, 66};
int *ptr = NULL;
int i;ptr = a;
for (i = 0; i < 5; i++) {printf("%d ", *(ptr + i));
}

程序输出为:22 33 44 55 66

数组的一个重要概念是,数组名称充当指向数组第一个元素的指针。

因此,语句 ptr = a 可以认为是 ptr =&a[0]。

【填空题】以下代码的输出是什么?

int a[5] = {22, 33, 44, 55, 66};
int *ptr = a;
int res = *(ptr + 2);
printf("%d", res);

更多地址算法

地址运算也可以视为指针运算,因为操作涉及指针。

除了使用+和–来引用下一个和上一个存储器位置之外,还可以使用赋值运算符更改指针包含的地址。

例如:

int a[5] = {22, 33, 44, 55, 66};
int *ptr = NULL;ptr = a;  /* point to the first array element */
printf("%d  %x\n", *ptr, ptr);  /* 22 */
ptr++;
printf("%d  %x\n", *ptr, ptr);  /* 33 */
ptr += 3;
printf("%d  %x\n", *ptr, ptr);  /* 66 */
ptr--;
printf("%d  %x\n", *ptr, ptr);  /* 55 */
ptr -= 2;
printf("%d  %x\n", *ptr, ptr);  /* 33 */ 

程序输出类似于:

22 febd4760
33 febd4764
66 febd4770
55 febd476c
33 febd4764 

你也可以使用 ==,< 和 > 运算符比较指针地址。

【选词填空】使用自增运算符增加指针并输出存储的值:

int arr[] = {1, 2, 3};
int* ptr = arr;
ptr;
printf("%d", );

&ptr

++

*ptr

ptr


http://www.ppmy.cn/news/488844.html

相关文章

Google C++ Style文档及常用代码规范(一):命名约定、格式、注释

文章目录 Google C Style文档及常用代码规范&#xff08;一&#xff09;&#xff1a;命名约定、格式、注释命名约定通用命名规则文件命名类型命名变量命名常量命名函数命名命名空间命名枚举命名宏命名命名规则的特例 格式注释注释风格文件注释类注释函数注释变量注释类数据成员…

dp主机_显示器有哪些接口?我来告诉你DP、HDMI、VGA、DVI有什么区别?

显示的接口有很多种类型&#xff0c;选购主机和显示器时&#xff0c;接口类型是我们需要考虑的因素&#xff0c;目前显示器的的接口有DP HDMI VGA DVI这几种&#xff0c;这些接口的形状也都不同&#xff0c;我们在选购主机的时候&#xff0c;一般都要考虑主机的显卡接口是否与显…

dp线长什么样子_主机dvi接口是什么样子(VGA、DVI、HDMI、DP四种主流接口知识)...

一般来说&#xff0c;显示器选择哪一种连接线是显卡显示接口与显示器显示接口决定的&#xff0c;也就是说&#xff0c;如果您的显示器或者显卡上其中一个没有DP接口&#xff0c;那么是无法使用DP接口的 当然如果显示器和显卡同时有DP、HDMI、DVI等接口&#xff0c;那么这种情况…

linux dp接口显示,什么是DP接口?DP接口有哪些用处?

原标题:什么是DP接口?DP接口有哪些用处? DisplayPort(简称DP)是一个由PC及芯片制造商联盟开发,视频电子标准协会标准化的数字式视频接口标准。它是第一个依赖数据包化数据传输技术的显示通信端口。 DP接口主要用于视频源与显示器等设备的连接,并也支持携带音频、USB和其他…

显示器接口VGA、DVI、HDMI、DP

1.说明 对于显示器接口类型&#xff0c; 常见的接口有VGA、DVI、HDMI、DP这四种&#xff0c; 当然还有其他类型接口&#xff0c; 本文主要介绍上面四种接口&#xff0c; 介绍接口的基本规格参数和外形等&#xff0c; 以及这四种接口之间的联系和区别。 2.VGA VGA接口Video Grap…

CS5218 DP转HDMI 4K30HZ转换方案

CS5218适用范围 CS5218 简介 Capstone CS5218AN 是一款单端口 HDMI/DVI 电平移位器/中继器&#xff0c;具有重新定时功能。它支持交流和直流耦合 TMDS 信号高达 3.0-Gbps 的操作与可编程均衡和抖动清洗。它包括 2 路双模 DP 电缆适配器寄存器&#xff0c;可用于识别电缆适配器…

硬件设计32之VGA、DVI、HDMI及DP介绍

1.显卡常见输出接口 显卡输出接口可以说在最近几年来"繁荣"了不少,可能大数网友依然还在使用最为"古老"的VGA输出接口,但随着高清显示技术的日益革新,显卡显示输出接口也随之相继"繁荣"起来,当然网友有了更多更好的显示输出解决方案,但同时…

DP和HDMI区别

转自&#xff1a;https://www.toutiao.com/i6877677362054595080 在目前市面上显示器接口中&#xff0c;VGA和DVI已经逐渐退出了历史舞台&#xff0c;Type-C还算是小众&#xff0c;而DP&#xff08;DisplayPort&#xff09;与HDMI则成为了主流产品的标配&#xff0c;目前的主流…