考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
全国  |             |          |          |          |          |         
  当前位置:计算机等级 > 二级考试 > C语言程序设计 > C语言辅导 > 文章内容
  

全国计算机等级考试二级C语言入门教程(98)

中华IT学院   【 】  [ 2016年5月5日 ]

printf("%d,%d,%d\n",a[i][2-i],*a[i],*(*(a+i)+i));
for(i=0;i<3;i++)
printf("%d,%d,%d\n",*pa[i],p[i],*(p+i));
}


本例程序中,pa是一个指针数组,三个元素分别指向二维数组 a的各行。然后用循环语句输出指定的数组元素。
其中*a[i]表示 i行 0列元素值;*(*(a+i)+i)表示 i行 i列的元素值;*pa[i]表示i行0列元素值;由于p与 a[0]相
同,故p[i]表示0行i列的值;*(p+i)表示0行i列的值。读者可仔细领会元素值的各种不同的表示方法。 应该注
意指针数组和二维数组指针变量的区别。 这两者虽然都可用来表示二维数组,但是其表示方法和意义是不同的。

二维数组指针变量是单个的变量,其一般形式中"(*指针变量名)"两边的括号不可少。而指针数组类型表示的是多
个指针( 一组有序指针)在一般形式中"*指针数组名"两边不能有括号。例如: int (*p)[3];表示一个指向二维数组的
指针变量。该二维数组的列数为3或分解为一维数组的长度为3。 int *p[3] 表示p是一个指针数组,有三个下标变
量p[0],p[1],p[2]均为指针变量。

指针数组也常用来表示一组字符串, 这时指针数组的每个元素被赋予一个字符串的首地址。 指向字符串的指针
数组的初始化更为简单。例如在例6.20中即采用指针数组来表示一组字符串。 其初始化赋值为:

char *name[]={"Illagal day",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"};


完成这个初始化赋值之后,name[0]即指向字符串"Illegal day",name[1]指?quot;Monday"......。

指针数组也可以用作函数参数。在本例主函数中,定义了一个指针数组name,并对name 作了初始化赋值。其每
个元素都指向一个字符串。然后又以name 作为实参调用指针型函数day name,在调用时把数组名 name 赋予形参变
量name,输入的整数 i作为第二个实参赋予形参n。在 day name函数中定义了两个指针变量 pp1和pp2,pp1被赋予
name[0]的值(即*name),pp2被赋予name[n]的值即*(name+n)。由条件表达式决定返回pp1或pp2指针给主函数中的
指针变量ps。最后输出 i和 ps的值。

首页 1 2 尾页
分享到:
本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2006-2017 中华考试网(Examw.com) All Rights Reserved  营业执照