您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页C语言指针操作·总结

C语言指针操作·总结

来源:化拓教育网

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。 


文末附详细总结 


学习日记


前言

        指针这里分为八个小部分,分别是“指针变量”、“通过指针引用”、“*通过指针引用数组”、“通过指针引用字符串”、“*指向函数的指针”、“*返回指针值的函数”、“*和多重指针”、“*动态内存分配与指向它的指针变量” 。   

一、指针的含义 

二、 一个地址型的数据实际上包含3个信息 

② 它本身的类型,即指针类型。

③ 以它为标识的存储单元中存放的是什么类型的数据,即基类型。

int a;
/* &a为a的地址,它就包括以上3个信息,它代表的是一个整型数据的地址,int是&a的基类型(即它指向的是int型的存储单元)。&a就是“指向整型数据的指针类型”或“基类型为整型的指针类型”,其类型可以表示为“int *”型。*/
int a,*p;		//p是int*型的指针变量,基类型是int型 
float b;
p=&a;		//a是int型,合法 
p=&b;		//b是float型,类型不匹配

三、有关指针变量的归纳比较

变量定义

类型表示

含义

int i;

int

定义整型变量i

int *p;

int *

定义p为指向整型数据的指针变量

int a[5];

int [5]

定义整型数组a,它有5个元素

int *p[4];

int *[4]

定义指针数组p,它由4个指向整型数据的指针元素组成

int (*p)[4];

int (*)[4]

p为指向包含4个元素的一维数组的指针变量

int f();

int ()

f为返回整型函数值的函数

int *p();

int *()

p为返回一个指针的函数,该指针指向整型数据

int (*p)();

int (*)()

p为指向函数的指针,该函数返回一个整型值

int **p;

int **

p是一个指针变量,它指向一个指向整型数据的指针变量

void *p;

void *

p是一个指针变量,基类型为void(空类型),不指向具体的对象

四、指针运算 

指针变量加(减)一个整数

p++;		//将该指针变量的原值(是一个地址)和它指向的变量所占用的存储单元的字节数相加

指针变量赋值

p=&a; 		//将变量a的地址赋给p
p=array; 	//将数组array首元素地址赋给p
p=&array[i];	//将数组array第i个元素的地址赋给p
p=max;		//max为已定义的函数,将max的入口地址赋给p
p1=p2;		//p1和p2是基类型相同指针变量,将p2的值赋给p1

两个指针变量可以相减

如果两个指针变量都指向同一个数组中的元素,则两个指针变量值之差是两个指针之间的元素个数。

两个指针变量比较

若两个指针指向同一个数组的元素,则可以进行比较。指向前面的元素的指针变量“小于”指向后面元素的指针变量。如果p1和p2不指向同一数组则比较无意义。

空值

        p的值为NULL与未对p赋值是两个不同的概念。前者是有值的(值为0),不指向任何变量,后者虽未对p赋值但并不等于p无值,只是它的值是一个无法预料的值,也就是p可能指向一个事先未指定的单元。

五、指针的优点

提高程序效率;

在调用函数时当指针指向的变量的值改变时,这些值能够为主调函数使用,即可以从函数调用得到多个可改变的值;

可以实现动态存储分配。

如果使用指针不当,会出现隐蔽的、难以发现和排除的故障。因此,使用指针要十分小心谨慎。

C语言指针操作

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务