gpt4 book ai didi

c++ - 关于数组指针的问题?

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

我试图学习指向数组的指针,但我无法理解为什么 *ptr 和 ptr 打印相同的值

/*Here is the source code.*/

#include<stdio.h>

int main()
{
int arr[] = { 3, 5, 6, 7, 9 };
int *p = arr;
int (*ptr)[5] = &arr;

printf("p = %u, ptr = %u\n", p, ptr);
printf("*p = %d, *ptr = %d\n", *p, *ptr);
return 0;
}

这是我得到的输出的快照:How come ptr and *ptr return same values !!

最佳答案

将打印方式更改为:

printf("p = %p, ptr = %p\n", (void*)p, (void*)ptr); 
printf("*p = %d, *ptr = %p\n", *p, (void*)*ptr);

因为格式说明符p用于打印指针。此外,当您打算打印该指针时,应将其转换为 void 指针。

可能的输出:

p = 0x7ffed5b62fd0, ptr = 0x7ffed5b62fd0
*p = 3, *ptr = 0x7ffed5b62fd0

现在您发现它们是相同的。

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

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