我创建了一个简单的程序:
#include <stdio.h>
int main()
{
int s1;
int s2;
int s3;
int *p1, *p2, *p3;
p1 = &s1;
p2 = &s2;
p3 = &s3;
printf("%d\n%d\n%d", p1, p2, p3);
}
每当我运行这个程序时,它都会打印出指针的内存地址,有趣p1
的是这些值有. 我想知道这背后的原因。为什么地址不同?p2
p3
12
12
注意:每次执行程序时都会发生这种情况。
输出:
我在许多类型的变量中测试了相同的程序,我得到的结果是..
当变量是 char 类型时。
当变量是长类型时
当我声明 int array 时,每个数组的大小为 1。
当第二个声明数组的大小为 2 时,它会获得额外的 4 字节偏移量。