@H_
502_0@%p专门用来打印变量的以十六进制表示的地址:
#include<iostream>
using namespace std;
int main()
{
int a = 10;
printf("a的地址是(用十进制表示):%d\n", &a);
printf("a的地址是(用十六进制表示):%p\n", &a);
system("pause");
return 0;
}
@H_
502_0@运行结果:
@H_
502_0@

@H_
502_0@用计算器验证一下:
@H_
502_0@

@H_
502_0@

@H_
502_0@
@H_
502_0@ 利用指针操作一切定义在内存中的变量:
@H_
502_0@

@H_
502_0@1.先定义的变量掉到栈的最
底部,后定义的变量在栈的上部分,下面的地址大,上面的地址小;
@H_
502_0@2.相邻定义的变量之间隔了三个整型变量所占的字节数,即隔了12个字节;
@H_
502_0@3.变量名都是首地址的别名;
@H_
502_0@4.指针即首地址;
@H_
502_0@5.指针的数学运算带类型,即p-1相当于p在栈内向上移动4个字节(即
一个整型变量的内存宽度),即p+1相当于p在栈内向下移动4个字节(亦即
一个整型变量的内存宽度);
@H_
502_0@6.让指针变量先任意指向
一个变量,然后通过指针的上下移动可以随便操作所有变量;
@H_
502[email protected]相邻整型变量之间相隔8个字节(即两个整型变量的宽度)。
@H_
502_0@
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。