gpt4 book ai didi

c - C 中的数组指针

转载 作者:太空宇宙 更新时间:2023-11-04 00:18:35 25 4
gpt4 key购买 nike

好的,我正在学习指针,但我无法理解指针在数组中的作用。

基本上是这样的:

int a[5] = {1,2,4,7,7}; // (allocated at 0xA000)    
int b[5] = {4,3,5,1,8}; // (at 0xA0020)
short *c[2]; // (at 0xA0040)
c[0] = (short *)b;
c[1] = (short *)a;

我应该确定这些计算的值。

c[0] + 4 

根据我的理解,c 是一个指针数组。 c[0] 是一个 short,它包含指向数组 b 的第一个元素的指针。如果 b0xA0020 开始,为什么 c[0] + 4 不是 0xA0024 而不是0xA0028

此外,我应该如何确定 c[1][2] 的值。 c 不是多维数组,那么这个计算结果如何呢?

谢谢!

最佳答案

实际上,当您向指针添加一个数字时,该数字会乘以所指向元素的大小(在您的例子中是short,因为您有一个short*)。 short 的大小在您的计算机上可能是 2 个字节,因此它会将 4*2 添加到地址,即 8。

这是来自 MSDN 的链接,解释了这个概念:

Click Here

关于c - C 中的数组指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19311227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com