31 指针变量
  pS9gKUHgntTq 2023年11月02日 18 0

31 指针变量_数据





01 怎么定义指针变量



一般形式
类型名 *指针变量名;


例子:int

左端的int是在定义指针变量时必须指定的“基类型”。指针变量的基类型用来指定此指针变量可以指向的变量的类型。

指针变量前面的“*”表示该变量的类型为指针变量。

一个变量的指针的含义包括两个两个方面,一是以存储单元编号表示的地址,一是它指向的存储单元的数据类型(如int,char,float等)。

指向整型数据的指针类型表示为“int”,读作“指向int的指针”或简称“int指针”。

。。。。。。。。。。。。
指针变量中只能存放地址(指针),不要将一个整数赋给一个指针变量。



02 怎样引用指针变量



给指针变量赋值。如:p=&a;指针变量p的值是变量a的地址,p指向a。

引用指针变量指向的变量。如已执行


p=&a

即指针变量p指向了整型变量a,


printf(“%d”,*p);

其作用是以整数形式输出指针变量p所指向的变量的值,即变量a的值。

引用指针变量的值。如:


printf(“%o”,p);


作用是以八进制形式输出指针变量p的值,如果p指向了a,就是输出了a的地址,即&a。

&取地址运算符。&a是变量a的地址。

*指针运算符,*p代表指针变量p指向的对象。



03 指针变量作为函数参数




访问内存空间,一般分为直接访问和间接访问。
如果知道内存空间的名字,可通过名字访问该空间,称为直接访问。由于变量即代表有名字的内存单元,故通。过变量名操作变量,也就是通过名字直接访问该变量对应的内存单元。

如果知道内存空间的地址,也可以通过该地址间接访问该空间。对内存空间的访问操作一般指的是存、取操作,即向内存空间中存入数据和从内存空间中读取数据。

在 C 语言中,可以使用间接访问符(取内容访问符)*来访问指针所指向的空间。


函数的参数不仅可以是整型、浮点型、字符型等数据,还可以是指针类型,它的作用是将一个变量的地址传送到另一个函数中。

不能企图通过改变指针形参的值而使指针实参的值改变。

函数调用可以得到一个返回值,而使用指针变量作参数,可以得到多个变化了的值。




04 野指针


把没有合法指向的指针称为“野”指针。因为“野”指针随机指向一块空间,该空间中存储的可能是其他程序的数据甚至是系统数据,故不能对“野”指针所指向的空间进行存取操作,否则轻者会引起程序崩溃,严重的可能导致整个系统崩溃。

例如:



int *pi,a;
//pi未初始化,无合法指向,为“野”指针

*pi=3;
//运行时错误!不能对”野”指针指向的空间做存入操作。
//该语句试图把 3 存入“野”指针pi所指的随机空间中,会产生运行时错误。

a=*pi;
//运行时错误!不能对”野”指针指向的空间取操作。
//该语句试图从“野”指针pi所指的空间中取出数据,
//然后赋给变量a同样会产生运行时错误。


正确的使用方法:



pi=&a;
//让pi有合法的指向,pi指向a变量对应的空间

*pi=3;
//把3间接存入pi所指向的变量a对应的空间



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: C语言结构 下一篇: 28 static声明局部变量
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  SBowDWXjb0NT   2023年11月30日   21   0   0 redis线程池数据
pS9gKUHgntTq
作者其他文章 更多

2023-11-02

2023-11-02

2023-11-02

2023-11-02

最新推荐 更多