下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中山市交通运输系统事业单位人员招聘考试备考试题及答案详解
- 2026年湖南省森林保护站事业单位人员招聘考试备考试题及答案详解
- 2026湖南株洲市渌口区公开招聘普通高中教师65人考试模拟试题及答案解析
- 成都市新津区所属事业单位2026年公开考试招聘工作人员(21人)考试参考题库及答案解析
- 2026年庆阳市新闻系统事业单位人员招聘考试备考试题及答案详解
- 2026山东潍坊高新区(上海)新纪元学校招聘教师考试模拟试题及答案解析
- 2026年设备监理师之设备监理合同检测卷讲解及完整答案详解【夺冠】
- 2026年人体解剖学练习通关考试题库及答案详解(新)
- 2026年智慧树答案【数控机床结构】智慧树网课章节题库试题附参考答案详解【模拟题】
- 2026年企业人力资源管理师之四级人力资源管理师押题宝典考试题库附完整答案详解【名师系列】
- 教师论文写作培训课件
- 河道治理课件
- 2025重症医学同步习题与全真模拟试题及答案
- 被压迫者的教育学
- 2025云南大理州住房和城乡建设局选调事业单位工作人员2人备考题库附答案解析
- 中医门诊部申请书
- 2025年工会社会工作者招聘笔试模拟试题库及答案
- 职教高考英语复习基础语法知识词法专题一名词课件
- 纪委日常监督培训课件
- 浙江省初中名校发展共同体2025年3月中考一模英语试题(含答案)
- 中国舞系列课件大全
评论
0/150
提交评论