指针变量

 指针变量广义上说,常说的“指针”隐含两个东西,一个是指针变量,另一个是指针常量。我们一般都是统称它们为指针,在大多数情况下,指针指的都是指针变量。如果指针用得很熟悉的话,没有必要对它们做严格区分。

 

指针变量和普通变量一样,都是用于存放数据的,只是指针变量存放的数据很特殊,是为存地址。一般情况下,如果不考虑指针强制转换的话,我们要求某个类型地址必须放到对应类型的指针变量中,如下所示。

int a=10;

int *p=&a;// a空间的地址假设为0x07080345

以上两句话,对于有C语言基础的同学来说,再简单不过了,如下图所示。

指针变量_第1张图片

 

 从上图中可以看出,指针变量p和普通变量a之间没有本质区别,都是变量空间放了一个数值,只是p里面的数值比较特殊,是a空间的地址,它指向了空间a。打个比方,一张名片好比就是变量p,名片上记录了公司的地址,这个地址就指向了公司的空间,这时候就说名片指向了公司的空间。

必须搞清楚的是, p指向了空间a,本质是p里面存放的地址指向了空间a,只是往往简单说成“指针p指向了空间a"。如果准确地讲,应该表述为“指针变量p里面存放的地址指向了空间a"。

 

你可能感兴趣的:(C++,C语言,指针)