gpt4 book ai didi

C:指针算术 - 它是如何工作的?

转载 作者:行者123 更新时间:2023-11-30 21:25:48 27 4
gpt4 key购买 nike

我是 C 编程新手,正在尝试了解指针算术的工作原理。当 printf 的参数为 *(p+2) 时,下面的 printf 语句打印 2;当 printf 的参数为 *p 时,打印 4。您能解释一下这种行为吗?

#include <stdio.h>
#include <conio.h>

int main()
{
int arr[4] = {4,3,2,1}, *p = arr;
printf("\n%d", *(p+2));

return 0;
}

最佳答案

让我们重写您的程序以使其更清晰一点:

#include<stdio.h>

int main(void)
{
int arr[4] = {4,3,2,1};
int *p = arr;
printf("\n%d", *(p+2));
return 0;
}

现在,*(p+2) 根据定义与 p[2] 相同。由于 p 指向 arr 的第一个元素,因此 p[2]arr[2] 相同> 等于2

类似地,*(p)*p 相同,因为 p 指向 arr< 的第一个元素*(p)4

您可能需要重新阅读教科书中涉及指针算术的部分。

关于C:指针算术 - 它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26890811/

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