数组及指针.pptx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数组及指针

制作人:熊石弟 2012年3月26日;内 容 概 要;指针; 内存中的每一个位置由一个独一无二的地 址标识符 内存中的每一个位置包含一个值 ; 地址标识符1000的位置存储了10,地址标识符1004的位置存储了-23等 通过地址访问值很不方便,但是编译器可以让我们通过变量记住地址名来访问内容 地址名为变量a,存储了10 ; 常用的类型有:char *、int*、float*等 主要是我们把变量声明为什么类型,指向变量的指针就是什么指针类型; 指针声明之后注意对他进行初始化,即指明指针指向的内存位置,否则他会随机指向任意位置,造成程序中断或产生其他结果。 在编程过程中先声明但未初始化指针并没有错,只是建议而已; 空指针并未指向任何东西,要是指针变量为空,只需将指针赋值为零。 NULL是C指针类型的一个特殊值,称为空,表示指针变量的值为空,不指向任何变量或函数。 我们在释放指针指向的内容之后,记得将指针置零,否则就会造成指针悬挂。 对NULL指针进行解引用之前必须确保他不是NULL指针;1.4 指针常量;1.5 指针运算;1.5.2 关系运算 对指针执行关系运算也是有限制的,用下列关系操作符对指针值进行比较是可以的。 = = 注意:他们的前提也两个指针必须同时指向同一个数组中的元素;指针的指针就是双重间接访问 指针的相关操作是间接访问 ;1.7 指针和const; const修饰 p 可以是变量也可是常量 int const p=a;//ok 常引用可以是变量也可是常量 int const p=b;//ok 常指针 修饰 *p 可以是变量也可是常量 int const *p =a;//ok int const *p=b;//ok; int const * const 相当于是in const 修饰 (*const), 那么可以是常量也可以是变量 int const *const p=a;//ok int const *const p=b;//ok 但是修饰对象只能是变量 int *p=a;// ok int p=a;//ok int *p=b;//error int p=b;//error; 2.1 一维数组 2.2 多维数组 2.3 指针数组 ; 2.1.1 数组名 2.1.2 下标引用 2.1.3 指针与下标 2.1.4 数组参数 2.1.5 数组长度 2.1.6 字符数组;2.1.1数组名;2.1.2 下标引用;举例说明: *arry=arry[0] *(arry+2)等价arry[2] *arry+6等价arry[2]+6 *(arry+6)等价arry[8] ap[-1],偏移量,等价arry[1] 2[arry],这是合法的 ; 举例推断:2[arry]等价于arry[2] 2[arry]等价于*(2+(arry)) *(2+(arry))等价于*(2+arry) 结合律 *(2+arry)等价于 *(arry+2) 交换律 *(arry+2)等价于arry[2];2.1.3 指针与下标;2.1.4数组参数;数组初始化方法 数组的初始化和其他的变量初始化相似,唯一的区别是数组的初始化需要一系列的数值:这些数值在一对花括弧内,数值之间用逗号隔开 示例: int arry[5]={1,2,3,4,5}; Char arry[]=“abcd”; Char arry[]={‘a’,’b’,’c’,’d’};;数组存储类型: 数组的初始化也要按存储类型分:静态和自动数组变量 静态数组:在程序执行之前就已经初始化了一次,可以缺省,系统会自动置零; 自动数组:在缺省的情况下是未初始化的,因其存储于堆栈中,每次的位置都不一样;数组参数: int arry[5]={1,2,3,4,5}; 数组 intstrlen(int string[]) 实现函数 intstrlen( arry) 传参函数 传递给函数的数组名,实质上传给函数的是指向数组第一个元素的指针的一份拷贝,所以我们不必担心会修改作为实参的指针;参数传递分为两种:值传递和地址传递 int arry[5]={1,2,3,4,5}; 数组 int a =5; 值传递:

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档