- 通常情况下,指针指的是指针变量,指针变量存放的是内存地址
比如:
int a=3; //a空间的地址加假设为0x40080050
int *p=&a;
上面的a里面放了个3,*p里面放了a的地址0x40080050,即为指针变量p里面存放的地址指向了空间a.
注意上面两幅图片的区别,一个是打印出地址,一个是直接打印出a里面的内容。
2,当我们说到地址的时候,是指的是某个字节的地址,&a就是代表每第一个字节的地址。
深入理解
//在这里p中只放置了a的首地址,但是a又是int类型的,*p希望访问的有四个字节的空间
//所以p所指向a的第一个字节向后数三个字节空间
int *p=&a
3,对于指针,星号的个数表示这个指针变量的级数。
4.指针得使用步骤:先声明,后关联,再引用
5,指针有两种使用方法
第一种:在定义类型的时候,与前面的类型结合,用于表示被定义的指针变量的类型,的个数表示定义的指针变量的级数。
第二种:解引用。当解引用的时候,p表示p所指向的空间,这个时候的也称为取空间操作。注意这里的p是一个整体,不能分开来看
6,取地址符号&的理解,取地址符号直接放在变量的前面,然后&和变量一起构成了一个新的符号,表示变量空间的额首地址,也就是首字节地址。
//注意:这里只是初始化指针,并不是解引用操作
int a;
int *p=&a;//此时的&a就表示取出的a的地址,*p指向的空间就是a的地址,
7.指针变量初始化和指针变量赋值的区别
指针变量赋值,比如:‘
int a = 7;
int *p=NULL;
p=&a;//注意这里的p并没有*,因为如果有了*的话,就表示a=&a,也就是把a的地址给了a,
//这样的话就错了