嵌入式开发之C语言的指针

指针是c 语言的特色,使其更灵活。
c语言编程中善用指针可以简化一些任务的处理,而对于一些任务(比如动态内存分配),必须要有指针才行的。也就是说精通c指针编程是很有必要的,帮助你成为一名优秀的cer。
每个变量有其对应的内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。
下面是一个输出定义的变量地址的实例:
编译和执行,产生下列结果:
var1 变量的地址:0x7fff5cc109d4var2 变量的地址:0x7fff5cc109de
什么是指针?
写了上面的代码之后,再来了解下什么是指针。
实际上指针也是变量,其中存放了其他变量的地址。就像其他变量或常量一样,使用之前要先声明。指针声明形式:
type *var-name;
type是指针的基类型,必须为有效的c语言数据类型,var-name是指针变量名。*用来声明这是指针变量。以下都是有效的指针声明形式:
int *ip; /* 一个整型的指针 */
double *dp; /* 一个 double 型的指针 */
float *fp; /* 一个浮点型的指针 */
char *ch; /* 一个字符型的指针 */
指针所指向的变量或常量的数据类型不同,但是,所有指针的值都是一个代表内存地址的十六进制数。
指针的使用
使用指针的基本操作:
定义一个指针变量
把变量地址赋值给指针
访问指针变量中可用地址的值
这些是通过使用一元运算符“*”来返回位于操作数所指定地址的变量的值。
下面是指针应用的实例:
当代码被编译、执行,产生结果如下:
address of var variable: bffd8b3caddress stored in ip variable: bffd8b3cvalue of *ip variable:20
c语言中的null指针
在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 null 值是一个良好的编程习惯。赋为 null 值的指针被称为空指针。
null 指针是一个定义在标准库中的值为零的常量。请看下面的程序:
当上面的代码被编译和执行时,它会产生下列结果:
ptr 的地址是0x0
在大多数的操作系统上,程序不允许访问地址为 0 的内存,因为该内存是操作系统保留的。然而,内存地址 0 有特别重要的意义,它表明该指针不指向一个可访问的内存位置。但按照惯例,如果指针包含空值(零值),则假定它不指向任何东西。
如需检查一个空指针,您可以使用 if 语句,如下所示:
if(ptr) /* 如果 p 非空,则完成 */
if(!ptr) /* 如果 p 为空,则完成 */

浅析人机界面互动技术的趋势发展
努比亚Z17能用上骁龙835?nubia Z17mini炫红色更值得关注!
在2020第十届中国国际机器人高峰论坛上,李群自动化再受瞩目
苹果与高通闹掰对其用户有哪些影响
智能建筑中高低压配电设备集成监控和管理系统应用分析
嵌入式开发之C语言的指针
基于LonWorks现场总线实现监控系统设计的四种方案分析
i3、i5、i7该如何选择装机?配置方案教程详解
CNCC | 论坛:探索 Omniverse 和 AI 加速创作开发流程
苹果M1 Mac外置GPU有希望支持
算法中央银行Basecoin是如何实现货币价格稳定的
如何选购wifi6路由器 这2个优势很重要
看看 Google I/O都有什么新鲜玩意 科技、人文、黑科技
2021年锂电池市场集中度还将会进一步提升
Penguin C无人机系统来提供低空侦察,风暴破坏和其他航空信息
MWC2018面世:华为再次强攻PC市场
DELMIA仿真软件的特色和适应性分析
这匹5G黑马 再续5G创造力!
RCC型开关电源电路原理
ad中3d封装放到哪个层