C++第五次课.pptVIP

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C第五次课

6.2.2 指针变量的声明 数据类型 *标识符; *表示声明了一个指针类型的变量。 数据类型可以是任意类型,指的是指针所指向的对象的类型。 * 指针变量应先定义再使用: int *p1; float *p2; char *p3; * 6.2.3 运算符 *和 *:指针运算符,表示获取指针所指向的变量的值,这是一个一元操作符。 :取地址运算符,用来得到一个对象的地址。 注意:*和出现在声明语句中和执行语句中,含义是不同的。 * *和 int *p; cout*p; int x; int refx=x; int a; int *pa; pa=a; * 声明p是一个int型指针; 输出指针p所指向的内容 声明变量x的引用refx; 将变量a的地址赋给指针pa; 若a是一个变量,p是指向a的指针变量 Int a; Int *p=a; *a *(a) *p a *p (*p) a p 和*有互逆作用。当它们结合在一起则相当于相互抵消。 * 6.2.4 指针的赋值 声明指针之后必须先赋值,才可以引用。 指针赋值方法: 数据类型 *指针名=初始地址; 指针名=地址; * float *p,f; p=f; f=20.8; cout*p; * 指针的声明、赋值和使用 #include iostream.h int main() { int *i_pointer; int i; i_pointer=i; i=10; cout“output int i=”iendl; cout“output int pointer i=”*i_pointerendl;} * 指向常量的指针。 声明时在“类型 *”前加上关键字const。 此时不能通过指针来改变所指对象的值。 const char *pc=“asdf”; pc[3]=‘a’; pc=“ghjk”; * 指向变量的指针常量 声明时,采用T *const 形式: char *const name2=“John”; name2=“abc” * Void 类型指针 有一种特殊的void类型指针。可以存储任何类型的对象地址。即,任何类型的指针都可以赋值给void类型的指针。 Void *pv; int *pint,i; void main() { pv=i; pint=(int *)pv; } * 6.2.5 指针运算 指针作为地址量加上或减去一个整数n,其意义是指针当前指向位置的前方或后方第n个数据的位置。由于指针可以指向不同数据类型,即数据长度不同的数据,所以这种运算的结果值取决于指针指向的数据类型。 例如,假设有一个指向单字节字符类型变量的指针和另一个指向双字节整数类型的指针。当字符指针加1时,实际结果是指针中的地址值加1;而整数指针加1时,实际结果是指针中的地址值加2。 由此,对于某种数据类型的指针p来说: p+n的实际操作是: (p)+n*sizeof(数据类型); p-n的实际操作是: (p)-n*sizeof(数据类型); 其中,(p)表示指针p中的地址值,而不是p,sizeof(数据类型)的长度单位为字节。 * 指针与数组 数组名是数组的首地址。 用以保存数组的变量称为“指向数组的指针变量”,简称为“数组的指针”。 用以保存数组元素的变量称为“指向数组元素的指针变量”,简称为“数组元素的指针”。 * 指针与一维数组 指向一维数组的指针定义方法: 类型 *指针变量名; 指针变量名=数组名(或数组名[0]); 或 类型 *指针变量名=数组名(或数组名[0]); * int array[10]; int *pointer; pointer=array; pointer=array[0]; int *pointer=array; int *pointer=array[0]; * 数组元素的引用 1. 下标法 数组名下标法: 这种方法在前面已学习过,即指出数组名和下标值,系统就会找到该元素。数组用其下标变化实行对内存中的数组元素进行处理。 int array[10]; array[0]...array[9] * 指针变量下标法: pointer[i] * 2. 地址法 前面已经介绍,一个数组名代表它的起始地址。地址法即通过地址访问某一数组元素。 例如,程序中说明了一个数组: int a[5]; 则a的值就是数组的起始地址,即a指向a[0],a+1指向a[1],……。同样,a+i是a[i]的地址,通过a+i的地址可以找到a[i]元素,即*(a+i)就是a[i]。 * 指针变量指针法: pointer+i 表示array[i]的地址。 *(pointer+i)表示数组元素array[

文档评论(0)

cgtk187 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档