31 指针变量

共 1415字,需浏览 3分钟

 ·

2021-07-16 15:32

点击蓝字

关注我们

DRAGON BOAT FESTIVAL

01 怎么定义指针变量


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

例子:int *point_1,*point_2;


左端的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对应的空间




球分享

球点赞

球在看

浏览 33
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报