31 指针变量
点击蓝字
关注我们
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对应的空间
球分享
球点赞
球在看