&取地址

1、取变量的地址

&只对单一变明确的量做,不对算式或者其他东西做

一般采用%p来输出变量的地址,%p的输出形式是十六进制

    int i=0;
	int p;

	p=(int)&i;                    
//将 &i强制转换成int赋值给p 然后输出 

	printf("变量i的地址0x%x\n",&i);
//十六进制输出i的地址 

	printf("变量i的地址%p\n",&i);
//一般采用%p来输出变量地址 

	printf("变量i的地址0x%x\n",p);
//十六进制输出p 

	printf("\n");

2、sizeof取地址

变量地址的大小与int的字节在32位架构下相同,但是在64位架构下不同

	printf("sizeof取地址%lu\n",sizeof(int));
	//变量地址的大小与int的字节在32位架构下相同,但是在64位架构下不同 

	printf("sizeof取地址%lu\n",sizeof(&i));

	printf("\n");
	

3、相邻变量的地址

m,n输出的字节相差4字节 ,说明在内存里面是紧邻安放 
 先定义的m在较高的位置后定义的n在较低的位置说明c语言内部存放由高到低 

   int m=0;
	int n;
	printf("相邻变量的地址%p\n",&m); 
	printf("相邻变量的地址%p\n",&n); 
	printf("\n");
	//m,n输出的字节相差4字节 ,说明在内存里面是紧邻安放 
	//先定义的m在较高的位置后定义的n在较低的位置说明c语言内部存放由高到低 
	

4、数组的地址.

直接拿数组名称当作地址输出可以正常输出

数组中相邻元素(单元)之间的差距是4个字节

int a[10];
	printf("数组的地址%p\n",&a);

	printf("数组的地址%p\n",a);
//直接拿数组名称当作地址输出可以正常输出 

	printf("数组元素的地址%p\n",&a[0]);

	printf("数组元素的地址%p\n",&a[1]); 
//数组中相邻元素(单元)之间的差距是4个字节 

	printf("数组元素的地址%p\n",&a[2]); 

综合代码

#include <stdio.h>
int main()
{
	
	//变量的地址 
	int i=0;
	int p;
	p=(int)&i;//将 &i强制转换成int赋值给p 然后输出 
	printf("变量i的地址0x%x\n",&i);//十六进制输出i的地址 
	printf("变量i的地址%p\n",&i);//一般采用%p来输出变量地址 
	printf("变量i的地址0x%x\n",p);//十六进制输出p 
	printf("\n");
	
	
	//sizeof取地址 
	printf("sizeof取地址%lu\n",sizeof(int));
	//变量地址的大小与int的字节在32位架构下相同,但是在64位架构下不同 
	printf("sizeof取地址%lu\n",sizeof(&i));
	printf("\n");
	
	
	//相邻变量的地址 
	int m=0;
	int n;
	printf("相邻变量的地址%p\n",&m); 
	printf("相邻变量的地址%p\n",&n); 
	printf("\n");
	//m,n输出的字节相差4字节 ,说明在内存里面是紧邻安放 
	//先定义的m在较高的位置后定义的n在较低的位置说明c语言内部存放由高到低 
	
	
	//数组的地址
	int a[10];
	printf("数组的地址%p\n",&a);
	printf("数组的地址%p\n",a);//直接拿数组名称当作地址输出可以正常输出 
	printf("数组元素的地址%p\n",&a[0]);
	printf("数组元素的地址%p\n",&a[1]); //数组中相邻元素(单元)之间的差距是4个字节 
	printf("数组元素的地址%p\n",&a[2]); 
	return 0;
}

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值