下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——C语言指针入门学习C语言指针入门学习
想要成为一名优秀的C程序员,学习指针是很有必要的。下面是我整理的C语言指针入门学习学识,梦想对大家有扶助!
正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号运算符访问的地址,它表示了在内存中的一个地址。请看下面的实例,它将输出定义的变量地址:
#includeintmainintvar1;charvar2[10];printfvar1变量的地址:%x,var1;printfvar2变量的地址:%x,var2;return0;
当上面的代码被编译和执行时,它会产生以下结果:
var1变量的地址:bff5a400var2变量的地址:bff5a3f6
通过上面的实例,我们了解了什么是内存地址以及如何访问它。接下来让我们看看什么是指针。
什么是指针?
指针是一个变量,其值为另一个变量的地址,即,内存位置的'直接地址。就像其他变量或常量一样,您务必在使用指针存储其他变量地址之前,对其举行声明。指针变量声明的一般形式为:
type*var-name;
在这里,type是指针的基类型,它务必是一个有效的C数据类型,var-name是指针变量的名称。用来声明指针的星号*与乘法中使用的星号是一致的。但是,在这个语句中,星号是用来指定一个变量是指针。以下是有效的指针声明:
int*ip;/*一个整型的指针*/double*dp;/*一个double型的指针*/float*fp;/*一个浮点型的指针*/char*ch/*一个字符型的指针*/
全体指针的值的实际数据类型,不管是整型、浮点型、字符型,还是其他的数据类型,都是一样的,都是一个代表内存地址的长的十六进制数。不同数据类型的指针之间唯一的不同是,指针所指向的变量或常量的数据类型不同。
如何使用指针?
使用指针时会频繁举行以下几个操作:定义一个指针变量、把变量地址赋值给指针、访问指针变量中可用地址的值。这些是通过使用一元运算符*来返回位于操作数所指定地址的变量的值。下面的实例涉及到了这些操作:
#includeintmainintvar=20;/*实际变量的声明*/int*ip;/*指针变量的声明*/ip=var;/*在指针变量中存储var的地址*/printfAddressofvarvariable:%x,var;/*在指针变量中存储的地址*/printfAddressstoredinipvariable:%x,ip;/*使用指针访问值*/printfValueof*ipvariable:%d,*ip;return0;
当上面的代码被编译和执行时,它会产生以下结果:
Addressofvarvariable:bffd8b3cAddressstoredinipvariable:bffd8b3cValueof*ipvariable:20
C中的NULL指针
在变量声明的时候,假设没有切当的地址可以赋值,为指针变量赋一个NULL值是一个良好的编程习惯。赋为NULL值的指针被称为空指针。
NULL指针是一个定义在标准库中的值为零的常量。请看下面的程序:
#includeintmainint*ptr=NULL;printfptr的值是%x,ptr;return0;
当上面的代码被编译和执行时,它会产生以下结果:
ptr的值是0
在大多数的操作系统上,程序不允许访问地址为0的内存,由于该内存是操作系统留存的。然而,内存地址0有更加重要的意义,它说明该指针不指向一个可访问的内存位置。但按照惯例,假设指针包含空值零值,那么假定它不指向任何东西。
如需检查一个空指针,您可以使用if语句,如下所示:
ifptr/*假设p非空,那么完成*/if!ptr/*假
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 隧道施工经验交流平台方案
- 储备粮库循环经济模式探索方案
- 施工质量检验与控制方案
- 妇幼保健院儿童心理健康项目方案
- 工地库存管理系统实施方案
- 水利工程施工设备管理方案
- 消防工作经验总结分享方案
- 农田植被覆盖与保土方案
- 数据安全管理方案设计与实施指南
- 外墙排水系统设计与施工方案
- 设备双主人管理办法
- GJB5714A-2023外购产品质量监督要求
- 2025版跨境电商代销合作合同范本
- 湖北省国土资源研究院-湖北省2025年度城市地价动态监测报告
- 2024年麻醉指南专家共识
- 脑梗死取栓术后护理查房
- 测绘成果保密自查报告
- 丁华野教授:下卷:提示为叶状肿瘤的形态学改变
- WB/T 1143-2024集装式移动冷库通用技术与使用配置要求
- 2025新课标义务教育数学(2022年版)课程标准试题库
- 工伤保险知识培训课件
评论
0/150
提交评论