LinuxC程序设计基础—数组与指针
数组
数组的含义:在程序设计中,为了方便处理,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。简单来说,数组具有相同数据类型的若干变量的有序集合,是一种复合类型。
指针
指针一般指向一个函数或一个变量,在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的变量或函数值。一个指针是一个地址,也是一个常量。然而一个指针的变量却可被赋予不同的指针值,是变量。但是常把指针变量称指针。为了混乱,我们约定,"指针"就是指地址,是常量,“指针变量”是指取值为地址的变量。定义指针是为了通过指针去访问内存单元。
通常定义指针的格式为:
类型说明符 *指针名=&变量名;
根据以上公式示范定义: int i;
int *a=&i;
其中 类型说明符表示本指针变量所指向的变量数据类型 *表示这是一个指针变量 &表示取变量名对应的内存地址 &i表示取变量i的地址。
我们也可定义多个指针变量,每个都要用*号,中间用逗号隔开。 例
int *p,*q;
用一个指针给另一个指针赋值时要注意,两个指针必须是同一类型的。如果不是先进行强制类型转换再赋值;
范题:
指针类型也可作为函数的参数 作用:将一个变量的地址传送到另一个函数中;
范题:
指针数组
一个变量有一个地址,一个数组有若干个元素,每个数组元素都在内存中占用存储单元,他们都有相应的地址。所谓数组的指针是指数组的其实地址,数组元素的指针是数组元素的地址。
一个数组由一个连续的一块儿内存单元组成的。数组名就是这块连续内存单元首选地址。一个数组元素的首地址也是指它所占有的几个内存单元的首地址。
指针变量可以实现本身价值的改变。如p++合法,代表下一个数组元素的地址;而a++是错误的。因为a是数组名,他是数组的首地址,是常量。
定义形式:
类型标识符 *数组名[整形常量表达式];
例如: int *a[6]={null};
例题:
如有不足,请批评指正,谢谢