C语言程序设计2第十一章指针.ppt

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

第11章 指针;11.1 指针的基本概念 11.2 指针变量的运算 11.3 数组指针变量的说明和使用 11.4 字符串指针变量的说明和使用 11.5 函数指针变量 11.6 指针型函数;11.1 指针的基本概念;11.1.2 指针变量的类型说明 对指针变量的类型说明包括三个内容: 指针类型说明,即定义变量为一个指针变量; 指针变量名; 变量值(指针)所指向的变量的数据类型; 其一般形式为: 类型说明符 *变量名; 其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示本指针变量所指向的变量的数据类型。; 例如: int *p; 表示p是一个指针变量,它的值是某个整型变量的地址。或者说p指向一个整型变量。至于p究竟指向哪一个整型变量,应由向 p赋予的地址来决定。再如: static int *p; /* p是指向静态整型变量的指针变量 */ float *p; /* p是指向浮点变量的指针变量 */ char *p; /* p是指向字符变量的指针变量 */ 指针变量本身一定是整数(就像房间号一样),类型差别只是所指地址中存放的数据的差别。 指针应具有“始终如一”的特点,也就是说,一个指针变量只能指向同类型的变量,不能时而指向一个浮点变量,时而又指向一个字符变量。这就好比商品的标签一样,贴计算机的标签不能贴在化妆品。 ;11.1.3 指针变量的赋值 指针变量也是变量,所以与普通变量同样,必须在使用前赋值。未经赋值的指针变量不能使用。当然,指针变量的赋值只能赋予地址,而不能赋予其它数据。因为变量的地址是由编译系统分配的,所以用户不知道变量的具体地址。因此,通过与变量之间的关系来确定它的值。引入地址运算来表示变量的地址。其一般形式为: 变量名; 如a变示变量a的地址,b表示变量b的地址。变量本身必须预先说明。设有指向整型变量的指针变量p,如要把整型变量a的地址赋予p可以有以下两种方式: (1) 指针变量初始化的方法 int a; int *p=a;; (2) 赋值语句的方法 int a; int *p; p=a; /* 不能写为*p=a */ 不允许直接把一个数赋予指针变量,作为变量的值。下面的赋值是错误的: int *p; p=23; 在赋值语句中,被赋值的指针变量前不能再加“*”说明符,如写为*p=a也是错误的。 ;11.2 指针变量的运算;2 取内容运算符* 用于表示指针所指的变量。*是单目运算符,其结合性为自右至左。如*p1,*p2。 在*运算符之后跟的变量必须是指针变量。 注意,指针运算符*和指针变量说明中的指针说明符*的意义并不相同。在指针变量说明中,“*”是类型说明符,表示其后的变量是指针类型。而表达式中出现的“*”则是一个运算符用以表示指针变量所指变量的内容。 【例11-1】(见课本) ;11.2.2 指针变量的运算 1 赋值运算 指针变量的赋值运算有以下几种形式。 (1) 指针变量初始化赋值 参见上页。 (2) 传递地址 把一个变量的地址赋予指向相同数据类型的指针变量。例如: int a,*pa; pa=a; /*把整型变量a的地址赋予整型指针变量pa*/ ; (3) 传递指针 把一个指针变量的值赋予指向相同类型变量的另一个指针变量。如: int a,*pa=a,*pb; pb=pa; /*把a的地址赋予指针变量pb*/

文档评论(0)

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

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

1亿VIP精品文档

相关文档