指针是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字节。
本文详细介绍了C语言中的指针概念及其使用方法。包括指针的基本定义、如何获取变量地址、指针变量的声明与赋值,以及通过指针修改变量值的操作。此外还讲解了指向指针的指针的概念及应用。
3151

被折叠的 条评论
为什么被折叠?



