int a=10; //int 占四个字节 有四个地址
int *pa = &a; // &a是四个地址中的第一个
32位:32个0或1组成的二进制序列
64位:64个0或1组成的二进制序列
一个内存单元——一个字节——00000.....
编号——地址——指针
(即指针变量)
一个指针变量的大小(与类型无关): 32位 4字节
64位 8字节
指针类型; int*pa; :sizeof(pa)
char*pc; :sizeof(pc)大小均一样 4与类型无关
float*pf; :sizeof(pf)
分类型意义1.指针解引用的权限有多大
:int a=0x11223344; //(16进制 一个由四个2进制组成)
(1.int *pa=&a;
*pa=0;
*pa=0; //运行 地址变成00000000 int型指针一次访问四个字节
(2.char*pc=&a;
*pc=0; //运行 地址变成00x11223300 char类型一次访问1个字节
int arr[10]=0; 4*10个字节
int *p=arr;
char*pc=arr;
打印 p 004ff40
p+1 ........44 加4
pc .......40
pc+1 ........41 加1
arr[10]=0 4*10个字节
int*p=arr;
char*pc=arr;
int i=0
for(i-0;i<10;i++)
{
p+1;
*(p+1)=1 //让从第一个元素开始 从0变成1 p是int , +1跳过一整个整形
}
意义2.指针走一步走多远(=或-)
每个元素占四个字节1.int 每次访问4个字节
2.char 每次访问1个字节