gpt4 book ai didi

无法理解这个简单的代码输出

转载 作者:太空狗 更新时间:2023-10-29 15:45:05 24 4
gpt4 key购买 nike

代码:

int a = 5;
int *ptr;
ptr = &a;

printf("%d",*ptr);
printf("\n%d",*(ptr++));
printf("\n%d",(*ptr)++);
printf("\n%d",++(*ptr));

输出:

5
5
1638268
1638268

我期望输出是: 5个 垃圾 5个 7抱歉,我的指针和运算符优先级概念非常暗淡。无法理解这个简单的输出。

最佳答案

  1. 第一个显然是 5,只是取消引用一个指针
  2. 仍然是 5,因为后缀运算符返回指针预增量
  3. 3和4是垃圾,因为指针不再指向已经分配的内存

如果您希望第二个像您预期的那样运行并打印垃圾,您可以使用前缀 ++ 代替

关于无法理解这个简单的代码输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18133425/

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