了解指针要先了解内存和地址的概念
内存在程序中成为主存DRAM,他是外存(硬盘)与CPU进行沟通的桥梁,所有程序的运行都是在内存中进行的,把内存分为八位二进制的存储单元,为了访问内存的每个存储单元,进行了编号,称为内存存储单元地址
内存地址占字节:x86 32位二进制 占4个字节 X64 64位二进制 占8个字节 (八位二进制是一字节)
地址没有大小,只有高低,%p表示输出某个变量的地址的格式控制符
指针变量自身的值就是地址!!!!!!!!取得是变量的低地址(首地址)!!!
指针变量是存储地址的变量 int*ip是存整型变量的地址 char*cp是存char类型变量的地址
* 三种表示:1.表示乘法:c=a*b 2.表示定义指针变量,也是一个声明:int *p 存放的是变量地址 3.表示取值:*p 声明一个int*p 之后才能使用*p进行取值
当定义指针变量时int* p=null,也给指针变量分配的内存,里面存的是地址和所指变量
指针里存了两个值:1.自身的值,也就是赋值指针变量p的变量地址 2. 指针变量p指向的变量的值
&p表示给指针变量分配内存空间的原本的地址
p表示指针指向的变量地址,也是存于指针p中的值
*p表示指针指向的变量名以及该该变量名所赋的值
在存放地址时,按照小端存放,高位数存放在高地址,依次四个存储地址,最低位数存放在低地址
if(*ap>*bp){}表示:如果指针p指向的变量a的值大于指向的变量b的值
if(ap==bp){}表示:如果指针p指向的变量a的地址等于所指的变量b的地址