一、指针
1.1 指针是什么
(1)指针是内存中的一个最小单元的编号,也就是地址。
(2)平时口语中的指针,通常情况下指的是指针变量,用来存放内存地址的变量。
(3)指针变量:里面存放的是指针(也就是地址),通过这个地址可以找到一个对应的内存单元。(地址是唯一标识一块地址空间的)
(4)一个内存单元对应一个字节
(5)指针变量的大小取决于一个地址存放的时候需要多大的空间;(见初始C语言部分)
(6)拓展:因为在32位机器上,地址用二进制表示有32位,在日常的使用当中很不方便,所以为了简要表示,在日常生活中我们会将地址进行十六进制转换,也就是二进制每四位对应十六进制一位,这样我们就可以用八位十六进制代替三十二位二进制,大大减少了复杂程度。(0x是十六进制的标志)
例:0x11223344——0001 0001 0010 0010 0011 0011 0100 0100
1.2 指针与指针类型
int main() {
int a = 0x11223344;//十六进制
int* pa = &a;
*pa = 0;
//结果为:a中11,22,33,44全部都改成了0;
int b = 0x11223344;
char* pc = (char*)&b;
*pc = 0;
//结果为:b中11,22,33,44,只有11变成了00,其余不变
return 0;
}
指针类型的意义一:
指针类型决定了指针在被解引用的时候访问几个字节。如果是int*的指针,则访问4个字节;如果是char*的指针,则访问1个字节;
int main() {
int a = 0x11223344;
int* pa = &a;
char* pc = (char*)