- 1、本文档共417页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 二级指针与指针数组的联系 字符串数组 * 命令行参数 在C语言中,main函数与其他函数一样可以带形式参数。 * 命令行参数 形式: main(int 参数1,char *参数2[]) 或者: main(int 参数1,char **参数2) * 命令行参数 说明: 两个形式参数的名字可以随意取(一般都习惯记作argc和argv),但是它们的类型与顺序必须与参数表中规定的相一致 * 命令行参数 说明: 当执行main函数时,参数1将自动被赋予由系统计算出的命令行上的单词个数 * 命令行参数 说明: 当参数1(argc)获得整数值后,编译系统自动建立一个长度为argc的字符指针数组*argv[argc],并使argv[0]指向命令行上的第一个实参数,使argv[1]指向命令行上的第二个实参数,… * 命令行参数 说明: 命令行可以带任意个参数,参数与参数之间必须以空格分隔 命令行参数 * 第九章 结构与其他自定义类型 结构类型的认识 结构类型的定义 结构变量 结构数组 结构指针 动态数据结构“链表” 共用体 枚举类型 类型自定义 * 结构类型的认识 使用结构能够有效地表示类型互异,又逻辑相关的数据实体。 * 结构类型的定义 形式: struct 结构名 { 成员列表; }; 结构类型 * 结构变量 结构变量的定义 结构变量的引用 结构变量的初始化 * 结构变量的定义 先定义结构类型,后说明变量 定义结构类型的同时说明变量 结构变量1 结构变量2 * 结构变量的引用 形式: 结构变量名.成员名 结构变量引用 * 结构变量的引用 说明: 当结构变量的成员是另一个结构变量时,必须使用多级成员运算符逐级引用其最底层的成员 只有当两个结构变量具有完全相同的结构类型时,相互之间才可以整体赋值 结构变量3 * 结构变量的初始化 与普通变量一样,结构变量也能在定义时被赋初值。 结构变量4 * 指针变量的定义 形式: 基类型 *变量名; * 指针变量的定义 例: int m,n,*p1,*q[4]; double y,z,*p2=z; * 指针变量的运算符 :取紧跟在其后面的变量的存储地址 *:从紧跟在其后面的地址开始取值 指针变量+或-一个整形常量: 指针变量 * 指针变量的引用 注意: *p若出现在变量定义语句中,表示定义指针变量p;若出现在表达式中,则表示取p所指对象的内容 指针变量只能接收、存储与基类型相容的变量地址,不能对指针变量赋非地址值或与基类型不相容变量的地址 * 指针与数组 程序中凡是用数组处理的算法都可以通过指针实现,而且速度要比数组快得多 * 指针与一维数组 在C语言中,数组名是个地址常量,它代表整个数组的存储首地址,因此赋值语句p=a与p=a[0]等价。 * 指针与一维数组 由于数组的存储是连续的,因此a+i就是a[i]的存储地址a[i]。*(a+i)表示取a+i地址中的内容,即a[i]的值。 一维数组的存储结构 * 通过数组名引用数组元素 a? a+i? a[0]? a[i]? a??a[0] a+i ??a[i] a[0] ??*a a[i] ??*(a+i) * 指针与一维数组 若p=a,则*(p+i)(或者p[i])就代表a[i]。注意,p是变量,其值可以改变,a是常量,其值不可改变。 * 指针与一维数组 当指针p指向了一维数组中的某个分量时,执行p++或p--变表示使指针p后移或前移一个存储单元,其位移的字节数等于所指数据类型的长度 *p++、*(p++)、*(++p)、(*p)++等的含义 * 指针与二维数组 二维数组的两种编译结构 把二维数组看作一个大的一维数组,整个数组是一个整体,数组名代表整个数组的存储首地址。 把一个二维数组看成是由若干个一维数组组成的数组,即数组的元素也是数组。 二维数组的存储结构 * 通过数组名引用数组元素 a??a[0] a+i??a[i] a[0]??a[0][0] a[i]??a[i][0] a[i]+j??a[i][j] a? a+i? a[0]? a[i]? a[i]+j? * 通过数组名引用数组元素 *a==a[0] *(a+i)==a[i] *(*(a+i)+j)==a[i][j] * 通过指针变量引用二维数组元素 一维数组名为一级指针常量,直接指向变量;二维组名为二级指针常量,指向一个一维数组,即指向行 数组指针:指向一维数组的指针变量 * 通过指针变量引用二维数组元素 定义形式: 数据类型 (*指针名)[N]; 其中,N代表指针变量所指向的一维数组的长度。 * 通过指针变量引用二维数组元素 注意: 指针名外面的一对圆括号不能漏写,否则就定义了指针数组而不是数组指针了 指针定义 * 通过指针变量引用二维数组元素 例: int a[4][3],b[3][5];
文档评论(0)