下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI大数据分析古代名家艺术传承与影响
- 2026年武汉光电国家实验室招考易考易错模拟试题(共500题)试卷后附参考答案
- 2026年松原市前郭县事业单位招考(19名)易考易错模拟试题(共500题)试卷后附参考答案
- 2026年杭州富阳市林业局招考编外人员易考易错模拟试题(共500题)试卷后附参考答案
- 2026年昭通市偏远农村贫困地区村完小以下学校教师招考易考易错模拟试题(共500题)试卷后附参考答案
- 2026年抚顺市政府投资评审中心招聘工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 2026年怀化市规划研究设计院招考专业技术人员易考易错模拟试题(共500题)试卷后附参考答案
- 2026年度白城市市直事业单位公开招聘易考易错模拟试题(共500题)试卷后附参考答案
- 2026年广西贺州市昭平县事业单位公开招聘工作人员83人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年广西百色德保县敬德镇人民政府招聘编外人员1人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年中小学生安全知识竞赛试题(附答案)
- 2026年安全管理人员安全培训考试题附答案
- 2026年人教版七年级下册政治期末综合测评卷(含答案可下载)
- 2026年全国新高考1卷英语试卷(含答案及详解)
- (2026版)学校保密安全管理制度
- 市场监督管理局特种设备安全监察工作手册(标准版)
- 高中数学必修一2.2基本不等式常见题型(含答案)
- 2026年贵州省六盘水市初二地生会考试卷题库及答案
- 20kV及以下配电网工程预算定额(2022版)全5册excel版
- 城镇污水处理厂资产管理方案
- 二级营销员题库及答案
评论
0/150
提交评论