运算符&

  • &:获取变量的地址,操作数必须是变量
int i;printf("%x",&i);
  • 地址的大小是否与int相同取决与编译器。
int i;printf("%p",&i);

&不能取的地址:&不能对没有地址的东西取地址

  • &a+b;
    &(a++);
    &(++a);
#include<stdio.h>

int main(void)
{
	int i = 0;
	/*
	*int p = (int)&i;          //把i的地址强制转换为整数类型
	*printf("0x%x\n", p);      // 再以16进制输出
	*/
	printf("0x%x\n", &i);     //以16进制输出i的地址
	printf("%p\n", &i);
	return 0;
}


数组的地址

#include<stdio.h>

int main(void)
{
	int a[10];

	printf("%p\n", &a);
	printf("%p\n", a);
	printf("%p\n", &a[0]);
	printf("%p\n", &a[1]);
	return 0;
}
/*
*00000084A88FF938
*00000084A88FF938
*00000084A88FF938
*00000084A88FF93C 
*/


更多推荐

C语言入门——取地址运算