我是c编程的新学生,做了一个小程序来看看动作中,指针中++的所有组合。所以我编码:(我通过virtualbox在Ubuntu中运行它)
#include <stdio.h>
main()
{
int num = 1;
int *p = #
printf("\nnum position: %p num value: %d\n", p, num);
*p += 1;
printf("\n---- *p += 1; -----\n");
printf("num position: %p num value: %d\n", p, num);
*p++;
printf("\n---- *p++; -----\n");
printf("num position: %p num value: %d\n", p, num);
(*p)++;
printf("\n---- (*p)++; -----\n");
printf("num position: %p num value: %d\n", p, num);
++(*p);
printf("\n---- ++(*p); -----\n");
printf("num position: %p num value: %d\n", p, num);
++*p;
printf("\n---- ++*p; -----\n");
printf("num position: %p num value: %d\n\n", p, num);
}
输出:
num position: 0xbfce07b8 num value: 1
---- *p += 1; -----
num position: 0xbfce07b8 num value: 2
---- *p++; -----
num position: 0xbfce07bc num value: 2
---- (*p)++; -----
num position: 0xbfce07bd num value: 2
---- ++(*p); -----
num position: 0xbfce08bd num value: 2
---- ++*p; -----
num position: 0xbfce08bd num value: 2
我已经了解了 ++ 的不同用法。但是我的问题是关于地址的(我只写了 4 位数字)
首先地址是:07b8
在第一次增量之后地址是07bc(增加 4(HEX))
在第二次增加之后地址是07bd(增加 1 (hex))第 3 次
递增后地址为08bd (增加 100 (hex))
为什么地址的递增不稳定?