指针(指针及运算符、地址与变量、指针类型、)
对象在内存中所占存储空间的起始地址称为指向该对象的指针,从本质上讲指针就是地址,也是C语言区别于其他语言的重要特征。正确使用指针,可使程序清晰简洁,进而实现代码紧凑高效的结果。
两个基本运算符:
取地址运算的&——用于获取存储单元首地址的单目运算符。
其格式为: &变量名 如:&x、&y、&z
引用目标运算的*——用于对某一指针所指目标进行访问的单目运算符。 其格式为: *指针表达式
如:在 int *p,*q,x,y;
p=&x;q=&y;
*p=10;*q=*p; 中
*p=10;是将10赋给指针变量p所指的变量x;*q=*p是将指针变量p所指的变量x的值赋给指针变量q所指的变量y。
指针的关系运算符:有<、>、<=、>=、==、!=等关系运算符,用比较运算符连接两个相关指针的表达式也是关系运算表达式,且都是整型表达式。当关系成立时,表达式的计算结果为1,否则为0。
指针的加减运算符:一个指针可以加上或减去一个整数值,包括+1或-1。
如:指针表达式p+_n的运算结果,是可以赋予与p指向相同目标类型的指针变量。实际编程中最常用到的是指针的增量或减量运算。如:p++、p--等。
计算机内的存储是由连续的存储单元组成的,每一个存储单元都有唯一确定的编号,这个编号即存储单元的地址,常用十六进制数(末尾带H)表示,这个地址就是指针;指针变量是一种专门存放存储单元地址的特殊变量,其中存放的是相应目标变量的地址,而不是变量的数值。地址与变量类似于日常要找的文件位置与文件内容。
指针的类型是指针所指对象的类型。在使用前对指针变量的定义,为了区别于普通变量,即在指针变量前加*号,如:
int *p; 定义指针变量p,p是指向整型变量的指针变量;
char *j; 定义指针变量j,j是指向字符型变量的指针变量。
定义的一般式为: 类型说明符 *指针变量名;
类型说明符 *指针变量名=初始地址值。
指针和函数(二值互换、引用传递、计算和与差)
利用指向函数的指针变量进行函数调用,即让程序从若干个函数中选择一个最适宜当前情况的函数予以执行。
指针和数组(数组与指针的相同与不同、数组的传递)
指针数组是一个数组,其每一个数组元素都是指针变量。与一般数组的特
点一样,同一个数组的每一个元素类型必须一致,和一般都变量一样,对每个指针变量,系统都为其在内存中分配相应的存储空间。指针数组名是指向指针类型数据的指针,简称为指针的指针。