Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2998
  • 博文数量: 4
  • 博客积分: 220
  • 博客等级: 二等列兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-16 09:59
文章分类
文章存档

2010年(4)

我的朋友
最近访客

分类: C/C++

2010-07-18 22:58:17

chapter 5 :pointers and arrays/c精华

1.ANSI C使用类型void *(指向void的指针)代替曾经的char *作为通用指针类型。但是其他的每个指针都必须指向某种特定的数据类型。

2.指针是一种保存变量地址的变量,在32位机中,一个指针是占4个字节存储的。地址运算符&只能应用于内存中的对象,即变量与数组元素。不能作用于表达式,常量或者register类型的变量。

3.*(间接寻址或者间接引用运算符)‘++等一元运算符遵循 从右到左的结合顺序。++*p

4.指针参数使得被调用函数能够访问和修改主调函数中对象的值。

5.一般,用指针编写的程序比用数组下标编写的程序执行速度快。a[i]表示该数组的第i个元素。我们要习惯于从0开始。

6.对数组元素a[i]的引用也可以写成 *(a+i),实际上计算a[i]的值时,都是先转换成*(a+i),再进行的求值。

7.数组名和指针有一个最大的不同:指针是一个变量,因此在C中,pa++(将跳向下一个对象所在的地址,是按一个单位一个单位跳跃的);pa=a都是合法的,但数组名不是变量,如上的形式,是非法的。

8.在函数定义中,char s[],和char *s 是等价的。函数参数中,后者用的比较多。也可以把子数组传给函数,f(&a[2])。

9.










阅读(235) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~