图5.3指针变量指针变量本身也是变量,所以指针变量在使用之前也需要定义。为指针变量赋值的方法有两种:一种是定义后,使用赋值语句的方式;另外一种是定义的同时进行初始化方式。......
2023-11-20
指针的学习主要包括四方面的内容:指针的类型,指针所指向的类型,指针的值(或者叫指针所指向的内存区),还有指针本身所占据的内存区。
C语言规定所有变量在使用前必须定义,指定其类型,并按此分配内存单元。指针变量不同于其他类型的变量,它是专门存放地址的,必须将其定义为“指针类型”。
1.指针变量的定义
指针变量定义的一般格式是:
数据类型 *指针变量[,*指针变量2…]
其中数据类型指的是指针变量指向数据的类型,即指针所指向的数据可以是整型、字符型或实型数等(注意:指针变量名的命名规则和变量名相同)。例如:
int*p1; /*定义p1是指向整数类型的指针变量*/
int*p1,*p2; /*定义p1,p2是指向整数类型的指针变量*/
int i,j,*p1,*p2; /*定义i,j是整型变量,p1和p2是指向整数类型的指针变量*/
2.指针变量的初始化
如何使一个指针变量指向一个普通类型的变量?其实很简单,只要将需要指向的变量的地址赋给相对应的指针变量就可以了。取地址运算的格式为:(www.chuimin.cn)
& 变量
其中的变量可以是任何类型变量。例如:
int*p1;
int i=10;
p1=& i;
其赋值过程如图7.1所示。
图7.1 指针变量的初始化
事实上,指针变量必须被赋值语句初始化后才能使用,否则严重时会造成系统区破坏而死机。指针可被初始化为0、NULL或某个地址。具有值NULL的指针不指向任何值。NULL是在头文件<stdio.h>(以及其他几个头文件)中定义的符号常量。把一个指针初始化为0等价于把它初始化为NULL,但是用NULL更好。对指针初始化可防止出现意想不到的结果。
有关C语言程序设计 第2版的文章
图5.3指针变量指针变量本身也是变量,所以指针变量在使用之前也需要定义。为指针变量赋值的方法有两种:一种是定义后,使用赋值语句的方式;另外一种是定义的同时进行初始化方式。......
2023-11-20
图8.1函数内存映射方式1.指向函数指针变量的定义C语言中可以定义指针变量来存储函数的首地址,并利用该指针变量对函数进行调用。指向函数的指针变量的真正作用是作为函数参数使用,使程序在功能的实现上具有更大的灵活性。指向函数的指针变量求最大值、最小值和两数之和。......
2023-11-20
取内容运算符*,又称间接引用运算符,结合性自右而左,用来表示指针变量所指的变量。指针变量定义时,“*”仅表示其后的变量是指针类型变量。图6.5指针的算术操作若设指针变量p 的值为2000,对于整型数据,其长度是2 个字节。然后,通过指针变量升序输出。图6.7指针变量p1 和p2 交换前后的指针方向......
2023-10-21
指向结构体变量的指针变量叫结构体类型指针变量,其定义方式、使用方法与指向基本变量的方法相同。使用结构体指针变量时还需要特别注意,结构体变量的地址与结构体变量成员的地址是不同的。已知某学生3门课程的成绩存放在一个结构体变量中,请设计一个独立的函数计算该学生的平均成绩,要求函数使用结构体指针变量做函数的形式参数。......
2023-11-20
指针数组是一组有序的指针的集合。用一维指针数组处理二维数组示例。程序一次运行的结果为:11415019618955311556532879428指针数组还常用于处理若干个相关的一维数组,此时指针数组中的每个元素指向一个一维数组的首地址。上面程序综合使用了指针数组和二级指针变量,在数据对象的定义和初始化阶段完成后形成的处理结构如图8.9所示。......
2023-11-20
void类型指针中的数据不能访问,如果非要访问的话,可以通过强制转换将void类型指针转换为与所指向的数据类型相符的类型。所谓“相同存储对齐限制”是指void类型指针所指的数据在内存中所占的长度与显式转换后的指针所指的数据在内存中所占的长度相等。同理,如果是将void类型转换为具有更小存储对齐限制的指针时,也可能引起数值的改变。......
2023-11-18
用户自己定义的结构体类型,与系统定义的标准类型一样,是可以用来定义结构体类型的变量。这种方法定义的结构体类型在程序后面不可使用,因为缺少完整的结构体类型名。......
2023-10-21
一般来说,对于一个n(n>1)级指针变量其内容是存放一个n-1级指针变量的地址。虽然y和z都是指针变量,但它们指向的变量是不同的,显然不能用同一层次的指针变量来表示。图8.5多级指针在存储系统中的关系在C语言中,用指针变量的级别来区分不同层次的指针变量。指向普通变量的称为一级指针变量,指向一级指针变量的称为二级指针变量,以此类推。而且,只要数据类型相同,任意级别的指针变量可以与普通变量、数组等一起定义。......
2023-11-20
相关推荐