正文

pointer底层相关2012-02-01 23:45:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/katwood/53209.html

分享到:

谭浩强
1.  在程序中一般是通过变量名来对内存单元进行存取操作的。
     其实程序经过编译之后已经将变量名转换为变量的地址,对变量的存取都是通过地址进行的。

2.  C语言中实参变量和形参变量之间的数据传递是单向的“值传递”方式,指针变量作函数参数也要遵循这一规则,
     不可能通过调用函数来改变实参指针变量的值,但可以改变实参变量指针所指变量的值。

3.  引用数组元素可以用下标法,也可以用指针法。
     使用指针法能使目标程序质量高(占内存少,运行速度快)

4.  事实上, 在编译的时候, 对数组元素a[i]就是按*(a+i)处理的, 即按数组首元素的地址加上相对位移量得到要找的元素的地址, 然后找出该单元的内容.
     可看出, [ ]实际上是一种变址运算符, 将a[i]按照a+i算地址
     故指向数组的指针变量也可以带下标, a[i]和*(a+i)等价

由3,4看出,引用一个数组元素, 可以:
     下标法: a[i]
     指针法: *(a+i) 或 *(p+i)s

只需记住一点:指针指向的数据类型与定义时指针的类型一定要是对应的。除了用强制类型转换。

阅读(1277) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册