gpt4 book ai didi

c - 在这个程序中 &a[0] 和 a 之间的区别是什么?

转载 作者:行者123 更新时间:2023-12-04 05:37:09 31 4
gpt4 key购买 nike

我在下面有一个程序......我有一个turbo c编译器所以int是2个字节..

#include<stdio.h>
main()
{
int a[3][2]={
{1,3},
{2,0},
{3,4}
};
printf("%d",(a+1)); //increments 2 bytes
printf("%d",(&a[0]+1)); // increments 4 bytes
printf("%d",(a[2]));
return 0;
}
a+1有什么区别和 &a[0]+1 ?

最佳答案

它们是等价的表达式。
a + 1&a[0] + 1值相同并且它们的类型都是 int (*)[2] .

请注意,您没有正确打印指针值:使用 p转换说明符并将参数强制转换为 (void *)打印指针的值:

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

关于c - 在这个程序中 &a[0] 和 a 之间的区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11793239/

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