寻址运算符&输出其操作数的内存地址。前面使用了寻址运算符&,它广泛用在scanf()函数。
&放在变量前面,scanf需要用到这个变量的地址。scanf内部可以利用这个地址 去修改对应的哪个变量的值。
看看下面的例子#include
int main(void)
{
/* 定义一些整数变量 */
long a = 1L;
long b = 2L;
long c = 3L;
/* 声明一些浮点变量 */
double d = 4.0;
double e = 5.0;
double f = 6.0;
printf("long类型的变量占用%u个字节。", sizeof(long));
printf("\n这是一些long类型变量的地址:");
printf("\na的地址是:%p,\nb的地址是:%p", &a, &b);
printf("\nc的地址是:%p", &c);
printf("\n\ndouble类型的变量占用%d字节。", sizeof(double));
printf("\n这是一些double类型变量的地址:");
printf("\nd的地址是:%p,\ne的地址是:%p", &d, &e);
printf("\nf的地址是:%p\n", &f);
return 0;
}
%u是显示sizeof生成的值 它是无符号的整数。
%p是一个新的格式说明符,来输出变量的地址。用来输出一个内存地址,其值为十六进制。
内存地址 一般是32位 或者64位。地址的大小取决于引用的最大内存量。