gpt4 book ai didi

C 编程指针和数组?

转载 作者:太空宇宙 更新时间:2023-11-04 01:56:30 24 4
gpt4 key购买 nike

#include <stdio.h>
int main()
{
int a[5];
printf("%p\n%p\n",a+1,&a[1]);
return(0);
}

当上面的代码构建并运行时。输出是:

0029ff00
0029ff00

然后当我将第 5 行从 a + 1 更改为 &a + 1

#include <stdio.h>
int main()
{
int a[5];
printf("%p\n%p\n",&a+1,&a[1]);
return(0);
}

输出是:

0029ff10
0029ff00

当我包含符号 (&) 时指的是什么,它与格式说明符 %p 有关系吗?

最佳答案

printf("%p\n%p\n",&a+1,&a[1]);

在这一行中,两个地址是不同的,因为 &a[1] 给出了 a[1] 的地址,而 &a+1 给出了 a[1] 的地址是 array 的最后一个元素之后的一个。

&a 给出数组的地址并将1 添加到它添加数组大小 到数组a

所以基本上,&a+1 = 数组 a 的基址 + 数组 a 的大小(该地址已打印)

关于C 编程指针和数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33657766/

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