C语言笔记11(指针二)
指针变量作函数参数
函数的参数不仅可以是整型、实型、字符型,还可以是指针型
它的作用是讲一个变量的地址传送到另外一个函数中
数组名做函数参数
当用数组名作为参数时,如果形参数组中元素的值发生变化,实参数组元素的值也随之变化
若有一个实参数组,想在函数中改变此数组的元素的值,是参与形参的对应关系有以下4种情况。
行参与实参都用数组名
实参用数组名,形参用指针变量
实参形参均用指针变量
实参为指针变量,形参为数组名
都是地址传递,只是形式不同!
指针做函数参数应注意地问题
指针变量在做实参时,必须有确定的值,即指向一个已定义的单位。
返回指针的函数
返回指针的函数定义形式:
类型说明符 *函数名([形式参数表])
{
[说明部分]
语句
}
说明:表示函数的返回值是一个指针,其他和一般函数相同。
如 int *f(int x, int y)
{......}
指针数组
指针数组:数组中的元素均为指针类型。适合用来指向字符串。
1.定义形式
数据类型 *数组名[常量表达式]
例如:int *pa[6];
[ ]比 ''优先级高,因此pa先与[6]结合,形成pa[6],具有6个元素。然后再与 ' '结合,表示此数组中每一个元素是指针型的。
2.功能
定义一个由6个指针变量构成的指针素组,数组中每个元素都是一个指向一个整数的指针变量。
4.指针数组的使用
用指针数组和用数组地址应用数组是等价的
区别:pa[i]的值可变,而a[i]的值不可变。
指针与字符串数组
字符串数组
数组中的每个元素都是存放字符的数组。
字符串数组的每一行可存放一个字符串。
用赋初值的方式给字符串数组赋值
(1)直接给字符串数组赋初值
(2)用指针数组处理多个字符串
指向数组的指针变量
类型说明符 (*变量名)[正整型常量表达式];
定义一个名为“变量名”的指针变量,这个指针变量所指的对象是一个有“正整型常量表达式”个元素的一维数组(建立一个与二维数组名一样的行指针)
二级指针
指向指针的指针:
指向指针数据的至臻变量。通常用于指向字符型指针变量。
说明格式:
类型说明 **指针变量
例如:char **p
定义指针变量p,用于存储领一个指针变量的地址。