赞
踩
内存:所有程序的运行在内存中
用Cheat Engine查看任意程序的内存(16进制):
显示大量的数据
想要定位某个数字 ,需要知道地址(类比二维坐标)
如F8的地址为00BCB900+08,所以是00BCB908(偏移)
ctrl+G
则有
内存单元的说明:
打开计算器
显然一个F8占用8bit(1111 1000)是一个byte
规定:一个内存单元是一个字节(F8),分配一个地址(00BCB908)
介绍&
&a:取变量a在内存中的地址(实际上取的是a的第一个字节的地址)
- #define _CRT_SECURE_NO_WARNINGS 1
- #include <stdio.h>
- int main()
- {
- int a = 3;
- printf("%p", &a);
- return 0;
- }
介绍指针:
格式 数据类型* 指针变量名称=&变量名称; //指针变量用于存放地址
(*不可以省略)
- #define _CRT_SECURE_NO_WARNINGS 1
- #include <stdio.h>
- int main()
- {
- int a = 0;
- int* pa = &a;//pa储存着a的地址
- *pa = 1;//*解引用操作,*pa即通过pa的地址来找到a
- //*pa=1;等同a=1;
- printf("%d", a);
- return 0;
- }
pa指向a
结果是1
***总结:指针自身存放地址即指出地址***
- #define _CRT_SECURE_NO_WARNINGS 1
- #include <stdio.h>
- int main()
- {
- printf("%d", sizeof(int*));
- printf("%d", sizeof(long*));
- printf("%d", sizeof(long long*));
- printf("%d", sizeof(char*));
- printf("%d", sizeof(float*));
- printf("%d", sizeof(double*));
- printf("%d", sizeof(short*));
- return 0;
- }
结果全是4-->4byte=32bit(32位选的是x86)
如果是64位结果全是8
不同数据类型的指针的大小是相同的,因为指针存放地址,指针的大小取决于地址的大小
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。