指针是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字节。
转载请标明出处:指针及指针变量
文章来源: 指针及指针变量