第十章指针的高级主题zd摘要.ppt

第十章指针的高级主题zd摘要

命令行:在操作系统状态下,为执行某个程序而键入的一行字符 命令行一般形式:命令名 参数1 参数2………参数n main(int argc, char *argv[]) { ……… } 命令行参数传递 带参数的main函数形式: C:\TC copy[.exe] source.c temp.c 有3个字符串参数的命令行 命令行中参数个数 元素指向命令行参数 中各字符串首地址 形参名任意 命令行实参 main(形参) 系统自动调用 main函数时传递 第一个参数: main所在的可执行文件名 命令行参数 小结 定义 含义 int i; int *p; int a[n]; int *p[n]; int (*p)[n]; int f(); int *p(); int (*p)(); int **p; 定义整型变量i p为指向整型数据的指针变量 定义含n个元素的整型数组a n个指向整型数据的指针变量组成的指针数组p p为指向含n个元素的一维整型数组的指针变量 f为返回整型数的函数 p为返回指针的函数,该指针指向一个整型数据 p为指向函数的指针变量,该函数返回整型数 p为指针变量,它指向一个指向整型数据的指针变量 * * 第十章 指针的高级主题 本章主要任务(掌握): 1、指针与二维数组; 2、 (掌握)指针数组。 3、 (掌握)指向指针的指针。 4、 (掌握)函数的指针和指向函数的指针变量。 5、 (掌握)命令行参数。 对于一维数组: (1)数组名array表示数组的首地址,即array[0]的地址; (2)数组名array是地址常量 (3)array+i是元素array[i]的地址 (4)array[i] ? *(array+i) array int array[10]; 指针与二维数组 对于二维数组: (1)a是数组名, 包含三个元素 a[0],a[1],a[2] (2)每个元素a[i] 又是一个一维 数组,包含4个 元素 a a+1 a+2 *(*(a+0)+1) *(a[0]+1) int a[3][4]; a[0] a[1] a[2] 2000 2008 2016 2000 2002 2008 2010 2016 2018 a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] a[0][2] a[0][3] a[1][2] a[1][3] a[2][2] a[2][3] 基类型 a[0]+1 a[1]+1 a[2]+1 *(a+0)+1 *(a+1)+1 *(a+2)+1 行指针与列指针(1) 对二维数组 int a[3][4],有 a-----二维数组的首地址,即第0行的首地址 a+i-----第i行的首地址 a[i] ? *(a+i)------第i行第0列的元素地址 a[i]+j ? *(a+i)+j -----第i行第j列的元素地址 *(a[i]+j) ? *(*(a+i)+j) ? a[i][j] a+i=a[i]=a[i]=*(a+i) =a[i][0], 值相等,含义不同 a+i ? a[i],表示第i行首地址,指向行 a[i] ? *(a+i) ? a[i][0],表示第i行第0列元素地址,指向列 int a[3][4]; a[0] a[1] a[2] 2000 2008 2016 2000 2002 2008 2010 2016 2018 a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] a[0][2] a[0][3] a[1][2] a[1][3] a[2][2] a[2][3] a a+1 a+2 行指针与列指针(2) int a[3][4]; a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] a[0][2] a[0][3] a[1][2] a[1][3] a[2][2] a[2][3] 二维数组元素表示形式: (1)a[1][2] (2)*(a[1]+2) (3)*(*(a+1)+2) (4)*(a[0][0]+1*4+2) 地址表示: (1) a+1 (2) a[1][0] (3) a[1] (4) *(a+1) (5)(int *) (a+1) 行指针 列指针 地址表示: (1) a[1][2] (2) a[1]+2 (3) *(a+1)+2 (4)a[0][0]+1*4+2 行指针与列指针(3) 表示

文档评论(0)

1亿VIP精品文档

相关文档