gpt4 book ai didi

c - 指针的增量与整数的增量不一样吗?

转载 作者:行者123 更新时间:2023-11-30 18:37:03 26 4
gpt4 key购买 nike

考虑下面的代码:

void increment(int* a)
{
printf("%d\n",a);
*a=*a+1;
}
int main()
{
int a=10;
int* p=&a;
increment(&a);
printf("%d",a);
return 0;
}

这会将 a 增加到 11,但是:

void increment(int* a)
{
printf("%d\n",a);
*a++;
}
int main()
{
int a=10;
int* p=&a;
increment(&a);
printf("%d",a);
return 0;
}

上面的代码生成的值为 10。

指针算术不像整数算术,还是我在这里遗漏了一些东西?

最佳答案

您缺少运算符(operator)优先级。 (*a)++;*a++ 完全不同。第一个在地址 a 处递增值,第二个在地址 a 处递增值并在原始地址处获取值。

关于c - 指针的增量与整数的增量不一样吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38740376/

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