数组和指针是一个非常发人深省的笔试

在上一次笔试中,我遇到了以下问题。没有人敢说精通C / C ++。
当然,长时间工作后,许多老问题将很容易解决。因此,该理论非常重要。
老实说,下面的问题是很基本的。尽管我当时在笔试中猜对了,但是我仍然需要深入研究具体的转换细节。
例如标题:#include< stdio.h> int main(void){char * str [] = {“ ab”,“ cd”,“ ef”,“ gh”, “ ij”,“ kl”}; char * t; t =(str + 4)[-1]; printf(“%s ",t); return 0;}上面程序的输出是什么?程序正确运行的结果如下:当时我看到,数组下标还具有负值吗?到底是怎么回事?让我们更改上面的程序,非常清楚,如下所示:#include< stdio.h& int int main(void){char * str [] = {“ ab”,“ cd” ;;,“ ef”,“ gh”,“ ij”,“ kl”; }; char * t; // t =(str + 4)[-1]; // printf(“%s <,t); t =(str + 4)[0]; printf(" t:%s ",t); return 0;}毫无疑问,这个程序是ij。看上图即可得到结果,实际上就是这样的转换关系:实际上,编译器系统将数组元素的形式更改为转换为*(a + i)在执行操作之前。
对于一般的数组元素形式:& lt;数组名称& gt; [<下标表达式& gt]]编译器将其转换为:*(<数组名称& lt;数组名称&& (<下标表达式>),其中下标表达式是:下标表达式*扩展因子。整个表达式的计算结果是存储器地址,并且最终结果是:*< address& gt; ==< amp; lt;与该地址& gt对应的单元的地址的内容。
可以看出,用C语言对数组的处理实际上是转换为指针地址的操作。因此,上式的转换结果为:t = *(str + 4); t =(str + 4)[-1] ======= t = *(str + 4-1)======& gt; t = *(str + 3);让我们再次看一下:#include< stdio.h& gt; int main(void){char * str [] = {“ ab”,“ cd”,“ ef”,“ gh” ,“ ij”,“ kl”}; char * t; // t =(str + 4)[-1]; // printf(“%s <,t); t = *(str + 4-1); printf(" t:%s " t); return 0;}操作结果:如果更改措辞,例如:#include& lt; stdio.h& gt; int main(void){int b; int a [10] = { 1,2,3,4,5,6,7,8,9,10}; int * p =& a [0]; b =(p + 8)[-4]; printf( b:%d " b);返回0;}您知道答案是什么吗?相同的算法:继续做好工作!!!通过回顾旧知识来学习新知识,注意基础知识,不要遗漏一些细节!过去的二叉树的奇妙数据结构C语言将xxx.bin文件转换为数组。
不要找它。您想要的C语言的经典示例在这里〜开源STM32产品:无线订购宝使用评估STM32CubeMX + STM32F1系列开发遇到四个问题和解决方案如果您认为这次分享的文章对您有所帮助,请单击[查找]并转发并分享,这也得到了我的支持。

公司: 深圳市捷比信实业有限公司

电话: 0755-29796190

邮箱: ys@jepsun.com

产品经理: 汤经理

QQ: 2057469664

地址: 深圳市宝安区翻身路富源大厦1栋7楼

微信二维码

更多资讯

获取最新公司新闻和行业资料。

  • 铜合金的电阻率和温度系数等电阻参数和其他常用材料系数 铜的电阻率温度系数 1、简介 铜的电阻率温度系数是多少呢?铜的电阻率温度系数定义是什么呢?我们先来纠正下“铜的电阻率温度系数”这个词。铜的电阻率温度系数其实正确的叫“铜的电阻温度系数”。下面介绍到的铜的电...
  • QA-/3 隔离开关熔断器组(上海人民):一种高效可靠的低压配电解决方案 QA-/3 隔离开关熔断器组是由上海人民电器厂生产的一种集开关与保护功能于一体的电器设备。这种装置广泛应用于低压配电系统中,作为线路及电气设备的不频繁接通和分断操作,并在过载或短路时通过熔断器进行保护。QA-/3 隔...
  • 电阻可以无限制地串联和并联组合在一起,串联和并联电阻 在先前的教程中,我们学习了如何将各个电阻器连接在一起以形成串联电阻器网络或并联电阻器网络,并且我们使用欧姆定律来找到流入每个电阻器组合的各种电流和电压。但是,如果我们想将各种电阻器在同一电路中以“并联...
  • 当两个电阻器的两个端子分别连接到另一个电阻器或多个电阻器的每个端子时,称并联电阻 与以前的串联电阻器电路不同,在并联电阻器网络中,电路电流可采用多条路径,因为电流有多条路径。然后,将并联电路分类为电流分配器。由于有多个路径供电源电流流过,因此通过并行网络中所有分支的电流可能不相同。...
  • 保险丝的一般电阻是多少?常用的有哪些 一般保险丝的电阻是多少?例如,额定电流为10A的保险丝和电阻为44欧姆的电器在220V电路中串联连接。我可以忽略保险丝的电阻,将通过电器的电流计算为5A吗?保险电阻器熔断电阻器,也称为熔断电阻器,既是电阻器又是熔断器...
  • 2W电阻指的是电阻功率而非阻值 2W电阻并不是指电阻的阻值,而是指电阻的功率。电阻的阻值一般以欧姆(Ω)为单位,而功率则以瓦特(W)为单位,表示该电阻在一定电压下能够承受的最大功率。因此,2W电阻意味着这款电阻能够承受的最大功率是2瓦特,而不是指...
  • 深圳精密电阻器批发 ¥0.23光颉电阻现货库存_0623封装_0.25%精度_10KΩ¥0.960.1%金属膜电阻 CSR0204BTDV2802 / 0204 0.1% 50ppm 1/4W 28KR¥0.960.1%金属膜电阻 CSR0204BTDV4702 / 0204 0.1% 50ppm 1/4W 47KR¥0.960.1%金属膜电阻 CSR0204BTDV1002 / 0204 0.1% 50ppm 1/4W 10KR¥0.960.1%金属膜电阻 CS...
  • 分立组件功能数组在系统设计中的应用与优势 在现代系统的构建中,分立组件功能数组的应用日益广泛,这不仅是因为它能够提高系统的灵活性和可维护性,还因为它能够在复杂的系统环境中实现更高效的资源分配和管理。分立组件功能数组指的是将系统功能按照特定规则...
  • 分立组件 晶体管 二极管 数组 应用领域 在电子工程和电路设计中,分立组件如晶体管和二极管数组扮演着至关重要的角色。晶体管是一种能够放大或切换电子信号的半导体器件,被广泛应用于各种电子设备中,包括计算机、手机、收音机等。它们是现代电子技术的基...
  • 新投运电容器组应进行合闸冲击试验 在交流电路中,如果电容器充电后再次闭合,电容器可能承受两倍以上的额定电压(峰值),对电容器有害。 同时也会产生较大的冲击电流,导致熔断或断路器跳闸。 因此,电容器组必须在每次开启后放电,待电荷消失后...
  • 二极管并联一个小电容的作用 我们在有的电路上会看到有的二极管上并联一只小电容,一般在几pf到0.2uf之间,有什么作用呢?分四种情况一,高频电路       这种电路对二极管的信号要求纯洁度比较高,如门,分离等,因为二极管有...
  • 10个问题让你一次性看懂电阻 1、什么是电阻?与电流、电压一样,电阻是电路的基本参数。电阻在电路中是用得最多的一种元器件。顾名思义,电阻是阻碍电流动的一种元器件,与电流是“死对头”。当我们在导体上施加电压时,电荷会以特定方向流过导体...
  • 晶振电路中电容器和电阻器的一些基本原理和功能分析 晶振电路中电容器和电阻器的一些基本原理和功能分析晶体振荡器电路中的电容和电阻是调节和保持晶体振荡器振荡稳定性的关键部件。柯凯青将带您了解晶体振荡器电路中电容和电阻的一些基本原理和功能。电容的作用通过选...
  • 新投运电容器组应进行几次合闸冲击试验 在交流电路中,如果电容器再次充电并闭合,电容器可能承受两倍以上的额定电压(峰值),这对电容器有害。同时还会产生较大的冲击电流,导致熔体熔断或断路器跳闸。因此,电容器组必须在每次打开后放电,然后在电荷消失后...
  • 电容器的三个主要功能是什么 电容器的三个主要功能是什么对于电容器,大家应该都听说过,电容器是一种常见的电子元件,其主要功能是储存和释放电能。现在让我们了解一下电容器的作用。直流阻断:其功能是防止直流电通过,并允许交流电通过。旁路...
  • 压缩机接线和绕组测量方法 1、单相制冷压缩机测量首先我们要知道,单相压缩机有:运行端(R),启动端(S),公共端(C)。其中:RS间的电阻大于SC间的电阻大于RC间的电阻。RS间电阻等于SC间电阻加RC间的电阻,否则判定压缩机有问题。如果是变频三相...
  • 25个220微法电容的应用与选择指南 这个标题旨在概括一个主题,即讨论25个220μF(微法)电容的应用场景、选择标准以及相关技术考量。然而,值得注意的是,通常情况下我们不会同时使用25个220μF的电容,除非是在特定的应用场景下需要大量的电容来满足电路设...
  • 保险丝的一般电阻是多少?保险丝的电阻是高还是低好 保险丝的一般电阻是多少?保险丝的电阻是高还是低好保险丝用于保护电路,也称为保险丝。为了在发生短路故障时及时熔断,保险丝的电阻通常高于导线的电阻。在正常情况下,保险丝的电阻在0.33Ω-1Ω的范围内。保险丝的电阻...
  • 合金和纯金属的电阻哪个更好? 合金或纯金属合金的电阻比纯金属小,合金密度大,分子更紧密。事实上,纯金属中的分子相互排斥和分解,但时间很慢。不是所有的合金都有高电阻或低电阻。为什么有些合金金属电阻很高?因为它是两种金属的合成。在一个...
  • 合金和纯金属电阻率哪个更大? 这个问题并没有实际意义。需要明确具体的金属,和具体的测试环境与条件才能知道哪个更大。...