一:内存与地址之间的关系
1》:内存其实是划分为一个个单元,而最小的内存块为内存单元,一个内存单元为1字节(byte),而每一个内存单元都有编号,这个编号就是地址,所以指针编号==指针==地址。
二:指针变量与地址的关系
1》:
int a=10 //1.此时已经创建一个变量为a并赋予了其10的值
2.而要存放10这个数,其实已经向内存申请了4个字节
然后,我们要了解指针变量与地址的关系
int a=10;
int *p=&a; 这里的*已经表明其p为指针变量,而int指的是p这个指针变量指向的对象为int类型的。
此时,这个p所申请的内存空间是用来存放a的地址的,*p相当于解引用,拿出p中所存放的地址,找到a这个地址。而指针变量的大小是由编译器所决定的,如果是在×64环境下,则为8个字节,如果是在×32环境下,则为4个字节。
三:指针变量类型,及其意义
指针变量有多种
int* char* double* float* short*等
其意义为指针的类型决定了对指针解引用时权限的大小,即为一次可以操作几个字符,
比如 int* 其int类型占4个字节,所以在解引用操纵中可以改变4个字节的地址
而像char*,其char类型占了1个字节,所以在解引用操作中可以改变1个字节的地址
四:const在指针的运用
int main()
{ int a=1;
首先要明白p与*p的概念
P里面存放的时地址
p是变量有自己的地址
*p是p指向的空间
int const *p=&a 此时如果在*p的前面这个就是不能通过改变*p里面的内存来改变p所指向的空间
但是可以修改p中的内容
int *const p=&a 此时可以通过修改*p中的内存来改变*p所指向的空间 但是不可以改变p其中的内容
}
五:指针的运算
指针有三种基本运算
1.指针+-整数
2.指针-指针
3.指针的关系运算
其中第一种比较简单不在讲解
第二种
指针-指针是两个指针中间的个数
第三种