gpt4 book ai didi

c - p = *a[0] 和 p=&a[0] 有什么区别

转载 作者:行者123 更新时间:2023-12-02 08:27:50 25 4
gpt4 key购买 nike

#define N 20
int a[2N], i, *p, sum;

p = a;


/* p=a is equivalent to p = *a[0];
• p is assigned 300.
• Pointer arithmetic provides an alternative to array indexing.
• p=a; is equivalent to p=&a[=]; (p is assigned 300)

这里我不明白 p=*a[0]p=&a[0] 是如何相同的? *a[0] 引用内存地址处的元素。

最佳答案

第 1 点

你明白吗,这里的int a[2N]无效代码?

这个 2N 并不意味着 2*N,而是这个 N 被认为是一个后缀(到整数文字 2) 无效。

感谢 @Lưu Vĩnh Phúc 先生在下方发表评论。

如果你想要像int a[40]这样的东西,写int a [2*N]

第 2 点

p=*a[0] and p=&a[0] are same

不,它们不一样。实际上,对于当前代码片段,*a[0] 无效

FWIW,p = a;p = &a[0]; 是一样的,因为数组名代表基地址,即数组中第一个元素的地址。

关于c - p = *a[0] 和 p=&a[0] 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30389504/

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