什么是指针? 从根本上看,指针是一个值为内存地址的变量,即指针变量的值为地址。在32位计算机中,一个指针占4 Byte, 而64位中一个指针占8 Byte。 (CPU无法直接在硬盘上读取数据,是通过内存读取的(地址总线,数据总线,控制总线),CPU通过地址总线找到该条数据,通过控制总线判断是读(Re)还是写(Wr), 通过数据总线将改数据读取到CPU或者从CPU写到内存中。所以,地址总线的宽度决定了CPU的寻址功能,数据总线的宽度决定了CPU单次数据传输的传送量(也就是数据传输速度),控制总线决定了CPU对其他控件的控制能力以及控制方式。计算机是64位,32位,16位,指的是计算机CPU中通用寄存器一次性处理、传输、暂时存储信息的最大长度。也就是CPU在单位时间内能一次处理的二进制数的位数。)
间接运算符(indirection operator):* 地址运算符:&
声明指针:
int *pi;
char *pc;
float *pl,*py;
float *px, py; //注意这样值定义了一个指针px, py是float型的变量
指针和变量名之间的空格可以省略,如int pi 和 int * pi 和 int pi 都可以; 注意:指针是一个新类型,不是整数类型,不能把两个指针相乘;
int salary = 10000;
int *p;
int val;
p = &salary; //指向salary的指针
val = *p; //把p指向的地址上的值赋给val
|