#include<stdio.h>
int main()
{
int a,b;
float e;
char f;
printf("int &a = %u\n",&a);
printf("int &b = %u\n",&b);
printf("float &e = %u\n",&e);
printf("char &f = %u\n",&f);
}
int &a = 2293324 int &b = 2293320 float &e = 2293316 char &f = 2293315
但是,当我使用此代码并更换printf进行float--
#include<stdio.h>
int main()
{
int a,b;
float e;
char f;
printf("int &a = %u\n",&a);
printf("int &b = %u\n",&b);
printf("char &f = %u\n",&f);
}
则输出是
int &a = 2293324 int &b = 2293320 char &f = 2293319
这里不提供地址浮动,但它宣称在上面。 我的问题是
- 内存是不是分配给程序中没有使用的变量?
- 为什么地址按递减顺序分配。从2293324到2293320?
帮你一个忙,打印地址时使用'%p'。 – WhozCraig
1)取决于编译器进行的优化 2)取决于编译器。 – mascoj
C++在哪里? – KABoissonneault