gpt4 book ai didi

c++ - 指针间接问题

转载 作者:太空狗 更新时间:2023-10-29 23:32:59 24 4
gpt4 key购买 nike

根据我的预期输出 0 1 2,此程序生成 0 1 1 作为输出。有人可以解释为什么增量运算符不能用作前缀吗?

#include <stdio.h> 
int main(void)
{
int i;
int *ptr = (int *) malloc(5 * sizeof(int));

for (i=0; i<5; i++)
*(ptr + i) = i;

printf("%d ", (*ptr)++);
printf("%d ", *ptr);
printf("%d ", *++ptr);
return 0;
}

最佳答案

假设 int *p = ptr:

printf("%d ", (*ptr)++);  // print ptr[0] then increment ptr[0] ==> 0
printf("%d ", *ptr); // print ptr[0] ==> 1
printf("%d ", *++ptr); // increment ptr then effectively print p[1] ==> 1

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

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