没有合适的资源?快使用搜索试试~ 我知道了~
C++指针与动态分配内存new关键字专题
5星 · 超过95%的资源 需积分: 13 18 下载量 159 浏览量
2014-04-08
21:19:45
上传
评论
收藏 355KB PDF 举报
温馨提示
试读
6页
C++指针与动态分配内存new关键字专题。网上收集,学习内存分配的好资料。
资源推荐
资源详情
资源评论
本文作者:黄邦勇帅
本文是学习 C++的基础内容,指针是 C 或 C++所特有的,因此应熟练掌握指针的使用,本文集中介绍 C 或 C++中的各种
指针,包括指针数组,数组指针,常量(const)指针,指向指针的指针,尤其是对二维数组和指针进行了详细精辟的解释,
在读完本文的二维数组和指针的讲解之后,相信你就会对指针有一个车底的了解了。
本文内容完全属于个人见解与参考文现的作者无关,其中难免有误解之处,望指出更正。
声明:禁止抄袭本文,若需要转载本文请注明转载的网址,或者注明转载自“黄邦勇帅”。
主要参考文献:
1、C++.Primer.Plus.第五版.中文版 [美]Stephen Prata 著 孙建春 韦强译 人民邮电出版社 2005 年 5 月
2、C++.Primer.Plus.第四版.中文版 Stanley B.Lippman、Barbara E.Moo 著 李师贤等译 人民邮电出版社 2006 年 3 月
3、C++.Primer.Plus.第三版.中文版 Stanley B.Lippman 等著 潘爱民 张丽译 中国电力出版社 2002 年 5 月
4、C++入门经典 第三版 [美]Ivor Horton 著 李予敏译 清华大学出版社 2006 年 1 月
5、C++参考大全 第四版 [美]Herbert Schidt 著 周志荣 朱德芳 于秀山等译 电子工业出版社 2003 年 9 月
6、21 天学通 第四版 C++ [美]Jesse Liberty 著 康博创作室 译 人民邮电出版社 2002 年 3 月
第一部分:指针
11.1 基础
1.指针是一个变量,它存储着另一个变量或函数的地址,也就是说可以通过指针间接地引用变量。指针变量包含一个地
址,而且可以存储任何数据类型的内存地址,但指针变量却被声明为特定的数据类型,一个指向整型数据类型的指针
不能存储一个浮点型的变量地址。
2.指针声明的形式为,数据类型 *指针变量名;其中*星号是指针运算符,例如 int *x;声明 x 为 int 型指针.
11.2 指针运算符*和&地址运算符
1.&地址运算符是一元运算符,能反回它的操作数的内存地址.如 y=&x;把变量 x 的地址输入到 y 中,它与 x 的值无
关,比如 x 的值为 1000,而 x 的地址为 55 则,y 将接收到地址 55.
2.*指针运算符是一元运算符,它是&运算符的相反形式,*运算符能反回位于其操作数所指定的地址的变量的值.例
如 y = &x;z = *y;假设 x 的值为 1000,地址为 55,则第二条语句说明 z 的值为 1000,*y 把由 y 所指向的内存的地
址的变量 x 的值赋给 z。*运算符可理解为“在地址中”,则 z=*y 可描术为“z 接收了在址址 y 中的值。”,
3.其实可以把*y 当成一个变量来使用,即可以为*y 赋值等,例如*y=100;(*y)++;等,但要注意的是对*y 的操作相当
于是对此指针指向的地址中的变量的操作,即对*y=100 的赋值语句,相当于是 x=100,而(*y)++则相当于 x++。
11.3 指针的运算
0.指针只支持 4 种算术运算符:++,――,+,-.指针只能与整数加减.指针运算的原则是:每当指针的值增加时,
它将指向其基本类型的下一个元素的存储单元.减少时则指向上一个元素的存储单元.
1.++,――运算符,假设 int 型 x 的地址为 200,且 int 型占 4 个字节,定义 int *p;p=&x;则 p++的地址将是 204,而
不是 201,因为当指针 p 的值增加时,它都将指向下一个 int 型数据.减少时也是这样,如 p――则,p 的地址将是 196.
2.+,-,运算符,注意两个指针不能相加.例 int *p;p=&x;假设 x 的地址为 200,则 p+9 将的指针地址将是 200+4*9=236,
即 p 指向了从当前正指向的元素向下的第 9 个元素.
3.两指针相减,同类型的一个指针减去另一个指针的值将是两个指针分开的基本类型的元素的个数.
11.4 指针和数组
1.在 C++语言中使用没有下标的数组名会产生一个指向数组中第一个元素的指针.如 char x[20];char *p;p=x;此语句
说明将 x 数组的第一个元素的地址赋给指针 p.
2.*(p+4)和 x[4]两句都可以访问数组中第 5 个元素,这里假设 int x[33];int *p;p=x;因为 p 是指向数组 x 的第一个元
素地址的指针,而 p+4 就是指向第五个元素的指针,而*(p+4)就是第五的个元素了.
3.p[i]语句相当于*(p+i)或 x[i]即数组中第 i+1 个元素的值,假设 char x[20];char *p;p=x;
11.5 字符串常量
资源评论
- xgdgxb2014-05-23非常不错的资源 很实用
lvquanzi
- 粉丝: 5
- 资源: 140
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功