指针及指针变量

      指针是C语言中的一个重要概念,也是C语言的一个重要特色,所以学好指针对学好C语言有重要作用。本篇博客就介绍指针和指针变量的相关定义知识。

&a就是得到a的地址,其实“指针==地址”,int *p就是定义一个整型地址(指针)变量

int a=10;//整型变量存放整型值

double b=1.24;//浮点型变量存放浮点型值

int *p=&a;//整型地址变量存放整型地址值

                //整型指针变量存放整型地址值

     指针在定义时使用的*只是用来说明该变量为指针变量,无其他作用,而在后来的赋值运算中*为间接访问符,是用来解引用的,指针必须有解引用这一步。

int a=10;

int *p=&a;//指针p保存了a的地址

*p=100;//把a的值置为100

p=&b;//指针p保存了b的地址

*p=200;//把b的值置为200

上述这段代码执行后的结果如下图:

通俗的理解为指针保存了谁的地址,就对谁解引用,就把谁的值置为几。

如果要对指针p取地址:&p,

a--&a: int -- int *           

p--&p: int * -- int **  --- int **pp=&p;//定义一个指针pp来存放p的地址

所以要对p取地址,就会有两个**。

*pp=&a;//指针*pp保存了a的地址

**pp=1000;//把a的值置为1000

*pp=&b;//指针*pp保存了b的地址

**pp=2000;//把b的值置为2000

*pp是指向指针的指针,*pp相当于上一段代码中的p,而**pp相当于*p。执行该段代码后结果如下图:

指针的大小:32位x86平台4字节,64位x64平台8字节。

猜你喜欢

转载自blog.csdn.net/niumengting/article/details/80463743